r - 计算数据框中每一列的数字(因子)在每组中出现的次数
问题描述
正如标题所示,我正在尝试扩展此处提出的问题:
但是对于给定数据框中的所有列。下面是一个可重现的示例:
dat <- data.frame(Bin = rep(1:4, each = 50),
Number = sample(5, 200, replace = T, prob = c(1,1,1,2,3)),
Number2 = sample(5, 200, replace = T, prob = c(1,1,1,2,3)))
> head(dat)
Bin Number Number2
1 1 4 2
2 1 5 5
3 1 4 4
4 1 4 1
5 1 5 5
6 1 5 3
我可以通过多个 dcast 来做到这一点。
dcast(dat, Bin ~ Number)
dcast(dat, Bin ~ Number2)
但是,我的实际数据框有更多列。任何帮助,将不胜感激!
谢谢。
解决方案
获取长格式数据并使用count
:
library(dplyr)
library(tidyr)
dat %>%
pivot_longer(cols = starts_with('Number')) %>%
count(Bin, name, value) %>%
pivot_wider(names_from = name, values_from = n)
推荐阅读
- php - iTunes 搜索 API:更新通知
- java - 无法使用 Java/Play Mailer 发送电子邮件
- python - 在 python 控制台中自动突出显示一个字母/单词
- python - 条件减日期
- c++ - 返回类型重载运算符
- c# - 全局模型不存在添加方法
- javascript - 如何更改 Semantic-UI React 的选项卡标题宽度(垂直选项卡)
- angular - 部署在 Intranet IIS 10 上的 Angular 6 客户端应用程序始终返回错误 0
- javascript - 将 ActiveDirectory Javascript 代码集成到 React
- python - 乘以继承自 QWidget 和另一个基类?