迭代地从数据帧中选择列序列

时间:2014-05-08 12:39:08

标签: r dataframe

我是R的新手,并试图学习一种简单的方法来完成我的任务:

我有一个包含15列的数据框。列名为ABCD,...,O,共有112行。

我有另一个向量,其中包含每次迭代时要读取的列序列。 例如:

x <- c("D", "E", "G", "H", "A", "B", "F")

我想做的是:

    第一次迭代的
  1. 从主数据框中读取第一列(即D),然后仅对该列执行操作。
  2. 在第二次迭代中使用两列(DE)并执行我的操作。
  3. 在第3次迭代中只读取DEG列并执行我的操作
  4. 我怎么能在R?中做到这一点?

1 个答案:

答案 0 :(得分:1)

DF <- as.data.frame(matrix(1:27, ncol=9))
names(DF) <- LETTERS[seq_along(DF)]

set.seed(42)
x <- sample(names(DF))

sapply(seq_along(x), function(i) {
  sum(DF[, x[sequence(i)], drop=FALSE])
})
#[1]  78 147 171 213 246 306 357 363 378