将数据框列作为R中的参数传递?

时间:2014-03-21 20:39:48

标签: r

我有一堆包含多列的数据框:

> names(mh)
 [1] "subj" "cond" "tpxx_150_brod_atl_comp_features.nii"
 [4] "tpxx_150_brod_atl_ant_features.nii" "tpxx_150_l_atl_features.nii" "tpxx_150_b38_features.nii"              
 [7] "tpxx_150_frontal_features.nii" "tpxx_150_fronto_temporal_features.nii" "tpxx_150_inf_frontal_gyrus_features.nii" 
 [10] "tpxx_150_inf_temporal_gyrus_features.nii" "tpxx_150_temporal_features.nii"

我需要为一堆这些列生成图表。这是一个这样的:

qplot(tpxx_150_temporal_features.nii, main="tpxx_150_temporal_features.nii", facets=cond ~ ., geom="histogram", binwidth=.01, xlim=c(.4,.9), ylab="pct", fill=subj, data=mh)

我需要一遍又一遍地这样做,所以我想自动化它:

for (colName in names(mh)[3:11]) { 
     print(qplot(colName, main=colName, facets=cond ~ ., geom="histogram", binwidth=.01, xlim=c(.4,.9), ylab="pct", fill=subj, data=mh)) 
}

除了不起作用。我正在使 colName 成为一个字符串,而qplot不需要字符串;相反(在通用编程语言的白话中)它似乎想要对数据框中的变量进行某种引用。但我不知道如何将一个转换为另一个,我不知道用右边的R术语来查找答案。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

mh成为您的data.frame。

    for (colName in names(mh)[3:11]) { 
         print(qplot(mh[ , colName], main=colName, facets=cond ~ ., geom="histogram", 
         binwidth=.01, xlim=c(.4,.9), ylab="pct", fill=subj, data=mh)) 
    }

现在您正在访问该实际列。