R语言技巧总结笔记

4,985 阅读

一、画图

横坐标文字的方向改变,在画图之前加上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

标准化:标准化

DataLearner 官方微信

欢迎关注 DataLearner 官方微信,获得最新 AI 技术推送

DataLearner 官方微信二维码