如何绘制某些数据帧的某些变量与其他一些变量?

问题描述:

函数对()产生所有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)这样的公式?

非常感谢。

+0

'双(DD,horInd = C( 1,4),verInd = c(2,3))' –

既可以使用的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不包括这些参数。所以在我的电脑上,我找到了帮助中的参数,但没有在我的同事电脑上。只是为那些没有找到参数的人添加这个。 –