如何绘制某些数据帧的某些变量与其他一些变量?
问题描述:
函数对()产生所有p×p对变量的p散点图。如何绘制某些数据帧的某些变量与其他一些变量?
x<-rnorm(100,0,1)
y<-rnorm(100,0,1)
z<-rnorm(100,1,1)
t<-rnorm(100,2,10)
dd<-cbind(x,y,z,t)
pairs(dd)
但我希望能够选择网格的'行'和列的。例如绘制对(x,y)(x,z)(t,y)(t,z)。是否有一个函数接受像(x + t)〜(z + y)这样的公式?
非常感谢。
答
既可以使用的pairs
的特定参数或创建接受的公式作为输入的自定义函数:
pairs(dd, horInd=c(1, 4), verInd=c(2,3))
自定义功能:
my_pairs <- function(df, formula) {
form <- deparse(formula)
s <- strsplit(form, "~")
lhs <- trimws(unlist(strsplit(s[[1]][1], "\\+")))
rhs <- trimws(unlist(strsplit(s[[1]][2], "\\+")))
lhs.ind <- match(lhs, colnames(df))
rhs.ind <- match(rhs, colnames(df))
all_cmbs <- expand.grid(lhs.ind, rhs.ind)
rows <- all_cmbs[,1]
cols <- all_cmbs[,2]
par(mfrow=c(2,2))
for(i in 1:4) {
eval(substitute(plot(df[,rows[i]], df[,cols[i]],
xlab=colnames(df)[rows[i]],
ylab=colnames(df)[cols[i]])))
}
}
my_pairs(dd, x + t ~ y + z)
+0
非常感谢,皮埃尔。我很惭愧,在帮助页面中没有看到这些参数。 (merci beaucoup,si ton nomrévèlebien que tu esfrançais)。我只需要看到这样的轴名称和细节。感谢您的帮助 ! –
+0
编辑:看来3.1.1版本的R不包括这些参数。所以在我的电脑上,我找到了帮助中的参数,但没有在我的同事电脑上。只是为那些没有找到参数的人添加这个。 –
'双(DD,horInd = C( 1,4),verInd = c(2,3))' –