【问题标题】:Summarizing categorical variables by multiple groups按多个组汇总分类变量
【发布时间】:2023-01-12 20:33:21
【问题描述】:

我有来自 93 份独特出版物的 1609 条观察结果。我正在对我的数据进行定性分析,我有以下变量:土壤质地(粗土、沙土、沙壤土、沙粘壤土)、实验设计(田间、温室和实验室)和出版物标题(93独特的出版物标题)。我想分析每个实验设计的土壤质地,以获得独特的出版物标题。我只能使用以下代码为独特的出版物标题编写实验设计或土壤纹理:

df4_2 <- metadata2 %>%
  group_by(publication_title) %>%
  group_by(experiment_cond) %>%
  summarise(count = n_distinct(publication_title))%>%
  drop_na()
View(df4_2)

OR

df4_3 <- metadata2 %>%
  group_by(publication_title) %>%
  group_by(soil_texture) %>%
  summarise(count = n_distinct(publication_title))%>%
  drop_na()
View(df4_3)

有谁知道我如何总结每个实验设计的土壤质地以获得独特的出版物标题?

我尝试了以下代码但没有用

df4_4 <- metadata2 %>%
  group_by(publication_title) %>%
  group_by(soil_texture) %>%
  group_by(experiment_cond) %>%
  summarise(count = n_distinct(publication_title))%>%
  drop_na()
View(df4_4)

【问题讨论】:

  • group_by(publication_title, soil_texture, experiment_cond) 可能会更好/更容易/更短。祝你好运!

标签: r dplyr


【解决方案1】:

默认情况下,每个 group_by() 都会覆盖/删除任何以前的分组。要按多个变量分组,请将它们包含在同一个 group_by() 调用中:

library(dplyr)

metadata2 %>%
  group_by(soil_texture, experiment_cond) %>%
  summarise(count = n_distinct(publication_title)) %>%
  drop_na()

如果您确实需要在单独的调用中添加组(此处不需要,但有时有用),请使用 .add 参数:

metadata2 %>%
  group_by(soil_texture) %>%
  group_by(experiment_cond, .add = TRUE) %>%
  summarise(count = n_distinct(publication_title)) %>%
  drop_na()

最后,注意你不应该按publication_title分组;如果这样做,则每组的 n_distinct() 将始终为 1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-27
    • 2019-01-17
    • 2017-01-11
    • 1970-01-01
    • 2020-08-03
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多