我有一堆包含多列的数据框:
> 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术语来查找答案。有人可以帮忙吗?
答案 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))
}
现在您正在访问该实际列。