以下是一个代表性的例子:
以下是崩溃的情况:
DF <- as.data.frame(matrix(data = 0, nrow = 9, ncol = 3))
colnames(DF) <- c("code", "actual", "expected")
DF$code <- letters[rep(1:3, each = 3)]
DF$actual <- runif(9, 3,5)
DF$expected <- rep(1:3, each = 3)
以下是崩溃的情况:
DF %>%
group_by(code) %>%
summarise(Exp = expected)
Error: expecting a single value
但是,以下内容有效:
DF %>%
group_by(code) %>%
summarise(Exp = unique(expected))
然而,代码唯一值只有一个。为什么直接返回该值不起作用?为什么需要将其包装在“unique”中?
谢谢!
summarise(Exp = mean(expected))
? - user227710c(1,1,1)
)分配给单个值。group_by
告诉summarise
它应该只期望一个值。 在某些情况下,即使是unique
也会因为这个逻辑而失败。 尝试DF$expected <- 1:9 ; DF %>% group_by(code) %>% summarise(Exp = unique(expected))
。但这主要是dplyr
的无聊操作。例如,data.table
不在乎这个问题:library(data.table) ; setDT(DF)[, list(Exp = expected), by = code]
。 - David Arenburg