我有一个数据集data.frame(x=rnorm(100),group=c(rep('a',40),rep('b',60)))
,我想用dplyr分析每个组。例如,我想使用fft
。如何在每个返回序列的组上生成运行函数,而不仅仅是值。如果它只是我可以总结的一个值,这在这里不起作用。我期待像data.frame(y=c(21,62,83,4,35,46,17,28), group=c(rep('a',5),rep('b',3)))
这样的输出。如果可能的话,我想用dplyr做,因为我认为它提高了可读性。
答案 0 :(得分:4)
基本上有三种选择:
summarize
。mutate
。do
。如果我理解正确的话,最后一个选项似乎最符合你的目的。 do
通常是这些选项中最强大的选项,但也是最难使用的选项。一般语法是:
data %>%
group_by(grouping_cols) %>%
do(data_frame(col1 = some_transformation(.$x)))
例如:
iris %>%
group_by(Species) %>%
do(broom::tidy(lm(Sepal.Length ~ Sepal.Width, data = .)))
答案 1 :(得分:4)
在使用Option[A]
创建unnest
输出后,我们可以使用list
。使用
summarise