这里有一个问题 - 我使用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'
如何处理将列表提供给子集调用的问题?
答案 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