按一个变量分组,但对 R 中的所有其他变量(均值)进行汇总()

Posted

技术标签:

【中文标题】按一个变量分组,但对 R 中的所有其他变量(均值)进行汇总()【英文标题】:Group by one variable, but summary() over all other variables (mean) in R 【发布时间】:2019-08-18 04:27:44 【问题描述】:

我知道已经有一些关于它的线程,但我还没有找到关于这个特定问题的线程。 我的数据集中的因变量是 Y,我有 144 个自变量。 Y 和 X 只能取值 1 或 0。数据看起来像

          Y    A469 T593 K022K A835 Z935 U83F W5326  ...
 Person1  1      1    1    1     0    0    0    0
 Person2  1      0    1    0     1    1    0    0
 Person3  0      0    0    1     0    0    1    1
 ...
summary(dataset)

仅提供所有观察结果的描述性统计数据。我想要的是(伪代码):

summary(all variables if Y == 1 and Y == 0)

如果我能看到某个 X 在 Y 的某个值中出现的频率,那就太好了。例如,如果 Y = 1,mean(X4) = 0.04 和 count = 6。

【问题讨论】:

请提供更完整的数据集以供使用。您可以而且应该使用dput 提供示例数据。 @NelsonGon Bold 在几乎得到答复后断言。我完全支持可重复的示例,当然dput() 更好,但这很清楚。 @Gregor 在我看来,缺乏数据使得很难找到“理想”的解决方案。抱歉! 【参考方案1】:

编辑 2 在 Akrun 和 Gregor 的 cmets 之后,这里是解决方案

 data_summary <- dataset %>% group_by(y) %>% 
    mutate(n = n()) %>%
    summarise_all(mean)

如果您希望看到的列数超出屏幕大小,可以尝试,例如,

print(data_summary, width = 20) View(data_summary) select(data_summary, &lt;&lt;particular columns you want to see&gt;&gt;) ...

【讨论】:

我收到此错误消息:UseMethod("groups") 中的错误:没有适用于 'groups' 的方法应用于类“c('double', 'numeric')”的对象 能否提供您的数据样本? 我认为count 是问题所在。你可能需要n() 试试n而不是n() 你说得对,它只显示前 10 个变量。它们都在那里,只是没有打印出来。将结果另存为data_summary 或其他内容,并使用除小标题的默认打印方法以外的其他方式查看它。 print.data.frame(data_summary)View(data_summary)write.csv(data_summary)print(data_summary, width = Inf)

以上是关于按一个变量分组,但对 R 中的所有其他变量(均值)进行汇总()的主要内容,如果未能解决你的问题,请参考以下文章

当通过R中的不同变量进行分组和汇总时,计算分类变量的出现次数

pandas使用groupby函数基于指定分组变量对dataframe数据进行分组使用mean函数计算每个分组中的所有数值变量的聚合平均值

R - 对连续变量标题进行分组,将分类变量因子作为行并聚合为最小值、最大值、平均值

按一个变量排序,按另一个分组,然后在 R 中的 SQL Query 中选择第一行

R中具有多个分组因子的多个变量的均值和标准差

R:具有分组并且依赖于另一个变量的加权平均值