我想获得以下
的平均值df<- structure(list(data1 = c(207.404, 212.581, 880.965, 1033.05,
296.026, 2198.92, 2422.49, 1796.63, 2272.94, 2256.56, 3359.57,
3674.91, 3133.45, 3510.23, 3651.04, 2816.53, 2681.64, 2894.54,
2689.13, 2828.89), data2 = c(0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L), data3 = structure(c(1L,
2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L,
3L, 4L, 5L), .Label = c("HH1", "HH2", "HH3", "HH4", "HH5"), class = "factor")), .Names = c("data1",
"data2", "data3"), class = "data.frame", row.names = c(NA, -20L
))
我做以下
df %>%
group_by(data2) %>%
summarise_at(vars(-data3), funs(mean(.)))
但如果我做得对不对,我就无法理解
让我们手动执行此操作,看看它是否给出相同的答案
例如第一个
mean(207.404,212.581, 880.965, 1033.050 ,296.026)
答案是207.404,而在上面的脚本中它计算526
我做错了什么?
答案 0 :(得分:1)
这与dplyr
无关。基本R mean
函数将其第一个参数作为向量。当您提供多个向量时,只会评估第一个向量。请参阅以下示例。
mean(c(207.404,212.581, 880.965, 1033.050 ,296.026))
# [1] 526.0052