r - 需要帮助将 Tidyr 的 Spread 合并到输出具有分组计数的数据帧列表的函数中

标签 r tidyverse

library(tidyverse)

使用底部的样本数据,我想找到性别和 FP 变量的计数,然后使用 tidyr::spread() 传播这些变量。我试图通过创建一个数据帧列表来做到这一点,一个用于性别计数,一个用于 FP 计数。我这样做的原因是最终 cbind 两个数据帧。但是,我无法将 tidyr::spread 合并到我的函数中。

下面的函数创建了一个包含两个数据帧的列表,其中包含性别和 FP 的计数,但计数并未“展开”。

  group_by_quo=quos(Gender,FP)

 DF2<-map(group_by_quo,~DF%>%
    group_by(Code,!!.x)%>%
    summarise(n=n()))  

如果我添加 tidyr::spread,它就不起作用。我不确定如何合并它,因为列表中的每个数据框都有不同的变量。

group_by_quo=quos(Gender,FP)

 DF2<-map(group_by_quo,~DF%>%
    group_by(Code,!!.x)%>%
    summarise(n=n()))%>%
    spread(!!.x,n) 

任何帮助将不胜感激!

示例代码:

Subject<-c("Subject1","Subject2","Subject1","Subject3","Subject3","Subject4","Subject2","Subject1","Subject2","Subject4","Subject3","Subject4")
Code<-c("AAA","BBB","AAA","CCC","CCC","DDD","BBB","AAA","BBB","DDD","CCC","DDD")
Code2<-c("AAA2","BBB2","AAA2","CCC2","CCC2","DDD2","BBB2","AAA2","BBB2","DDD2","CCC2","DDD2")
Gender<-c("Male","Male","Female","Male","Female","Female","Female","Male","Male","Male","Male","Male")
FP<-c("F","P","P","P","F","F","F","F","F","F","F","F")
DF<-data_frame(Subject,Code,Code2,Gender,FP)

最佳答案

我认为您放错了右括号。此代码对我有用:

library(tidyverse)

Subject<-c("Subject1","Subject2","Subject1","Subject3","Subject3","Subject4","Subject2","Subject1","Subject2","Subject4","Subject3","Subject4")
Code<-c("AAA","BBB","AAA","CCC","CCC","DDD","BBB","AAA","BBB","DDD","CCC","DDD")
Code2<-c("AAA2","BBB2","AAA2","CCC2","CCC2","DDD2","BBB2","AAA2","BBB2","DDD2","CCC2","DDD2")
Gender<-c("Male","Male","Female","Male","Female","Female","Female","Male","Male","Male","Male","Male")
FP<-c("F","P","P","P","F","F","F","F","F","F","F","F")
DF<-data_frame(Subject,Code,Code2,Gender,FP)

group_by_quo <- quos(Gender, FP)

DF2 <- map(group_by_quo,
  ~DF %>%
    group_by(Code,!!.x) %>%
    summarise(n=n()) %>%
    spread(!!.x,n))

这最后一部分使用 count 更简洁:

DF2 <- map(group_by_quo,
  ~DF %>%
    count(Code,!!.x) %>%
    spread(!!.x,n))

并且通过使用count,不必要的分组信息也被删除了。

关于r - 需要帮助将 Tidyr 的 Spread 合并到输出具有分组计数的数据帧列表的函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49092980/

相关文章:

r - IntelliJ IDEA 中的 "The R Interpreter"设置是什么?

r - 如何从 ggplot2 中的 x 轴的 %m 中删除前导零

r - 处理 CSV 文件中包含分号的字符变量

r - 在 grid.arrange 中使用 layout_matrix 时修复绘图区域宽度

r - 如何对 dplyr-R 中的多个数据帧应用相同的操作?

替换一个字符串并用另一个字符串创建一列

r - 按 R 中的连续值对数据帧行进行分组

使用环境变量重命名带有 tidyverse 的列

r - 将一组列与另一组列相乘的整洁方法

r - 使用 any() 与 |在 dplyr::mutate 中