【发布时间】:2016-04-04 21:43:48
【问题描述】:
愚蠢的例子:
df <- data.frame(group=rep(LETTERS, each=2), value=1:52)
res <- unlist(lapply(unique(df$group), function(x) mean(subset(df, group==x)$value)))
names(res) <- unique(df$group)
res 会一直存在吗?
A B C D E F G H I J K L M N O P
1.5 3.5 5.5 7.5 9.5 11.5 13.5 15.5 17.5 19.5 21.5 23.5 25.5 27.5 29.5 31.5
Q R S T U V W X Y Z
33.5 35.5 37.5 39.5 41.5 43.5 45.5 47.5 49.5 51.5
或者是否会发生在第 2 行计算的平均值与第 3 行的名称不匹配的情况?我想这取决于 R 基础中 unique 的底层实现,但我不确定在哪里可以找到它。
【问题讨论】:
-
我相信它会按照它们在原始向量中出现的顺序返回它们,但文档并没有明确承诺这一点(尽管它有点暗示)所以如果你愿意承担我认为可以承担的少量风险。