这里有一个问题 - 我正在使用 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'
Run Code Online (Sandbox Code Playgroud)
如何处理将列表提供给子集调用的问题?
我们需要使用连接来创建一个vector而不是list
x <- c("alpha", "beta")
rowSums(d[x])
#[1] 5 7 9
Run Code Online (Sandbox Code Playgroud)
如果我们正在使用list,那么unlist它会创建一个vectorasdata.frame需要一个vector列名(列索引)或行名(行索引)来对列或行进行子集
x <- list("alpha", "beta")
rowSums(d[unlist(x)])
#[1] 5 7 9
Run Code Online (Sandbox Code Playgroud)