我有以下变量和数据框
welltypes <- c("LC","HC")
qccast <- data.frame(
LC_mean=1:10,
HC_mean=10:1,
BC_mean=rep(0,10)
)
现在我只想看到我选择的井型(在这种情况下是LC和HC,但它也可能是不同的。)
for(i in 1:length(welltypes)){
qccast$welltypes[i]_mean
}
这不起作用,我知道。 但是我如何循环这些列?
并且它必须发生变化,因为井型具有未知的大小。
答案 0 :(得分:3)
$
的第二个参数需要是第一个参数的列名。我没有运行代码,但我希望welltypes[i]_mean
是语法错误。 $
与[[
类似,因此您可以使用paste
通过[[
创建列名称字符串和子集。
例如:
qccast[[paste(welltypes[i],"_mean",sep="")]]
根据代码的其余部分,您可能会做出类似的事情。
for(i in paste(welltypes,"_mean",sep="")){
qccast[[i]]
}
答案 1 :(得分:2)
这是另一种策略:
qccast[ sapply(welltypes, grep, names(qccast)) ]
LC_mean HC_mean
1 1 10
2 2 9
3 3 8
4 4 7
5 5 6
6 6 5
7 7 4
8 8 3
9 9 2
10 10 1
答案 2 :(得分:0)
访问给定welltypes
qccast[,paste(welltypes, '_mean', sep = "")]