R中的子集因子

时间:2014-10-22 00:51:24

标签: r subset factors

s <- split (x, x$factor)
s[[1]]

所以我希望能够将这些因子子集与lapply一起使用。下面是模拟我试图做的模拟代码。

meanfunction <-lapply(s[[1]],function(x) colMeans(x[, c("col1","col2")]))

但它不起作用。所以我虽然我会聪明并试图欺骗R并绑定一个新变量t<-s[[1]],然后在函数中使用它,但唉它也不起作用。无论哪种方法,我都会得到相同的错误消息。

Error in x[, c("col1", "col2")] : incorrect number of dimensions

但是当整体评估时,代码工作得很好。有什么想法吗?谢谢。

编辑: x是一个包含4列的data.frame 字符,数字,数字,因子

1 个答案:

答案 0 :(得分:1)

dplyr是这类工作的绝佳选择,假设我正确理解你的目标。这是一个例子:

library(dplyr)
x = tbl_df(data.frame(factor = factor(c(rep("A", 3), rep("B", 4))), value = 1:7))
group_by(x, factor) %>% summarise(mean = mean(value))

您可以找到有关dplyr here

的更多信息