使用data.table已经有一段时间了,现在想尝试一下dplyr。很有趣,但是我不知道如何访问
- 当前的分组变量
- 每个组返回多个值
以下示例在data.table中可以正常工作。您将如何使用dplyr编写此代码?
library(data.table)
foo <- matrix(c(1, 2, 3, 4), ncol = 2)
dt <- data.table(a = c(1, 1, 2), b = c(4, 5, 6))
# data.table (expected)
dt[, .(c = foo[, a]), by = a]
a c
1: 1 1
2: 1 2
3: 2 3
4: 2 4
# dplyr (?)
library(dplyr)
dt %>%
group_by(a) %>%
summarize(c = foo[a])
summarize
可能无法完成,您可以尝试使用do
。 - akrunfoo[a]
缺少逗号... 无论如何,正如 akrun 所建议的那样,summarise 不是一个好选择,因为它喜欢每个组返回一行。mutate 也不是一个好选择,因为它喜欢返回 n() 即 .N,所以你需要在 dplyr 的世界里拼凑出一些东西。 - Frank