R语言技巧总结笔记
一、画图
横坐标文字的方向改变,在画图之前加上par(las=2),2表示垂直于坐标轴。
图形坐标离边缘的距离(调整图像位置):par(mar=c(3,3,3,3))四个值分别表示下、左、上、右
画图调整legend(图例)位置:args.legend=list(x='topleft',bty='n'),x表示图例位置,可以设置“bottomright”, “bottom”, “bottomleft”, “left”, “topleft”, “top”, “topright”, “right”, “center”几种,bty是指图例的盒子类型,只能选择o(带方框)或者n(不带方框)。
画二元正态分布图:
我们使用了两个包:mvtnorm|rgl前一个是多元正态分布抽样,求概率密度的包,后一个是画3D图像,鼠标可以转动从不同角度看图像的结果。
#定义均值和方差
mu <- c(1000,10)
Sigma <- matrix(c(10,3,3,1000),2,2)
#抽样,抽取10000个数据点
x <- rmvnorm(n=10000, mu, Sigma)
x1 <- x[,1]
x2 <- x[,2]
#估计这10000个数据点的概率密度,依然使用之前的方差和均值
y <- dmvnorm(x,mean=mu,sigma = Sigma, log=FALSE)
#画图
plot3d(x1,x2,y,col='red')
图像如下:

二、数据操作
read.table第一行作为列名:header=T
read.table第一列作为行名:row.names=1
选择数据框中的某些行:比如basic_feature是一个数据框,有行名,uids是另一个数据,是我们想要选择的行的名字(注意which里面类型相等):basic_feature[which(as.numeric(rownames(basic_feature)) %in% uids$V1),]
计算符合条件的数的个数:比如basic_feature的V2是一系列数字,我们要找出其中V2大于2000的个数:sum(basic_feature$V2>2000)
重编码,将数据框中某个列中符合一定条件的数值进行改写,比如,我要将上述basic_feature的V2列中大于2000的数值都改成2000:basic_feature$V2[basic_feature \dollar V2>2000] <- 2000
标准化:标准化
