理解在djr R包中使用summarize()后的解分组

14ifxucb  于 2023-10-13  发布在  其他
关注(0)|答案(1)|浏览(100)

我有一个包含三个变量的数据框。我按两个变量分组

gruppierter_df <- df |> 
  group_by(A, B)

那我就做了

gruppierter_df |> 
summarize(n=n())

这给了我一个输出,包括这个消息:

`summarise()` has grouped output by 'A'. You can override using the `.groups` argument.

在documentation中,它说,在执行summarize()之后,删除了右边的分组变量。
我希望,在使用summarize()之后,gruppieter_df只按“A”分组。但是如果我再次使用summarize(),它仍然给出相同的输出,其中gruppieter_df仍然由两个变量“A”和“B”分组。
我本以为第二个summarize()会给出与

gruppierter_df2 <- df |> 
  group_by(A)

gruppierter_df2 |> 
  summarize(n=n())

因为在第一次使用summarize()后,按“B”分组将被删除。
如果您能向我解释summarize对 Dataframe 的具体作用,我将非常高兴。
谢谢你,谢谢!

a11xaf1n

a11xaf1n1#

您不会将gruppierter_df |> summarize(n=n())的结果保存在任何地方。如果你做

x <- gruppierter_df |> summarize(n=n()); 
groups(gruppierter_df)
# [[1]]
# A
# [[2]]
# B
groups(x)
# [[1]]
# A

你会发现只按A分组使用summarize根本不会改变gruppierter_df,它会返回一个新的具有不同组的data.frame。
你会看到一个不同的结果,如果你这样做

gruppierter_df |> 
  summarize(n=n()) |> 
  summarize(n=n())

相关问题