我觉得这个问题应该已经有了答案,但我没有找到。我有一个数组,我想使用向量对其进行子集化。我知道如何以艰难的方式做到这一点,但我相信一定有一种简单的方法。有任何想法吗?

这是我的例子:

dat <- data.frame(a = rep(letters[1:3], 2), b = rep(letters[1:2], 3), c = c(rep("a", 5), "b"), x = rnorm(6), stringsAsFactors = FALSE)

l <- by(dat[ , "x"], dat[ , 1:3], mean)

l["a", "a", "a"] # works
l[c("a", "a", "a")] # does not work

所以我想我需要一种方法来删除 c() 包装形式 c("a", "a", "a") ,然后再将它传递给 l

最佳答案

您可以使用矩阵代替向量:

l[matrix(rep("a", 3), nrow=1)]

关于arrays - r 子集数组使用向量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18936833/

10-12 17:11
查看更多