r - 如何汇总选定的列?
问题描述
这是数据框。
Number UrinateFrequently UrgeUrinate
1 occasionally rarely
2 rarely rarely
3 occasionally occasionally
4 rarely always
5 frequently always
我一次只能像这样总结一栏
a %>% group_by(UrinateFrequently) %>% summarise(n = n())
UrinateFrequently n
<fct> <int>
1 rarely 2
2 occasionally 2
3 frequently 1
我怎样才能像这样一次总结所有这些?
UrinateFrequently UrgeUrinate
rarely x x
occasionally x x
frequently x x
always x x
我已经尝试过了,但它不起作用。
a %>% summarise(across(everything(),list(group_by(.),n = n(.))))
解决方案
由于两列中的唯一项不相同并且您想要一个共同的数据基础,因此首先转换为具有一组共同级别的“因子”数据类型sapply
:table
df[-1] <- lapply(df[-1] , factor, levels=unique(unlist(df[-1])) ) )
#---------------------
sapply(df[-1], table)
#----------------
UrinateFrequently UrgeUrinate
occasionally 2 1
rarely 2 2
frequently 1 0
always 0 2
我是 R 的“老派”,所以 tidyverse 函数不是我使用的第一个工具。作为一个疯狂的猜测,您可能想尝试 package:purrr 的map
功能。
推荐阅读
- algorithm - 在彩色区域中绘制轮廓的算法
- java - 如何从 Json 中知道 SpringBoot 中的对象是哪个类?
- css - 延迟双变换
- sockets - 无法打开与系统消息总线的连接:无法连接到套接字 /var/run/dbus/system_bus_socket
- java - 使用实体列表和 c:foreach 循环的包装器时表单中的模型属性和路径
- mongodb - 文档的mongodb默认值不在数组中
- c - 需要帮助才能将此 C 代码“翻译”成仅当句子一时
- matlab - 如何在 MATLAB 中保存/加载 App Designer 应用程序对象?
- r - 增加绘图的像素分辨率
- erlang - 重新启动 => erlang 主管的瞬态与永久