错误:无效的下标类型' list'在R

时间:2017-05-08 03:15:57

标签: r

这里有一个问题 - 我使用eclipse参数创建一个函数来处理不同的函数参数。我重新创建了类似的情况,以显示我一直碰到的问题,

> d <- data.frame(alpha=1:3, beta=4:6, gamma=7:9)
> d
  alpha beta gamma
1     1    4     7
2     2    5     8
3     3    6     9

> x <- list("alpha", "beta")
> rowSums(d[,c(x)])
Error in .subset(x, j) : invalid subscript type 'list'

如何处理将列表提供给子集调用的问题?

1 个答案:

答案 0 :(得分:4)

我们需要使用concatenate来创建vector而不是list

x <- c("alpha", "beta")
rowSums(d[x])
#[1] 5 7 9

如果我们使用list,那么unlist创建vector作为data.frame需要vector列名称(列索引)或行名(行索引)以对列或行进行子集

x <- list("alpha", "beta")
rowSums(d[unlist(x)])
#[1] 5 7 9