r - 在新数据框中汇总表值
问题描述
因此,我希望获得一些统计数据,例如下表中所有列的“是”和“否”。
问题 1 | 问题2 | 问题 3 |
---|---|---|
是的 | 是的 | 不 |
是的 | 不 | 不 |
是的 | 不 | 是的 |
不 | 不 | 不 |
不 | 是的 | 不 |
目标是获得以下数据框(列和行可以切换,对我没有任何影响):
/ | 是的 | 不 |
---|---|---|
问题 1 | 3 | 2 |
问题2 | 2 | 3 |
问题 3 | 1 | 4 |
我发现的唯一方法很长(table(column) --> read.table(text) --> rbind 到为前一列创建的前一个数据框)并且需要大量手动操作。
有没有办法一次性完成所有这些?
谢谢您的帮助 !
解决方案
这是否有效:
library(dplyr)
library(tidyr)
df %>% pivot_longer(everything()) %>% count(name, value) %>%
pivot_wider(id_cols = name, names_from = value, values_from = n)
# A tibble: 3 x 3
name no yes
<chr> <int> <int>
1 Question 1 2 3
2 Question 2 3 2
3 Question 3 4 1
推荐阅读
- typescript - 关于 react-native-track-player 跳过曲目功能的建议
- facebook-group - 我可以查看有多少人邀请了我的群组吗?
- jenkins - Jenkins 多分支管道如何自动初始化和更新 repo 的子模块
- c# - System.CommandLine 不会调用 Moq 对象上的方法
- python - 在 pandas 中复制 excel 公式以进行偏移和索引匹配
- html - shiny.fluent:在下拉列表中包含自定义 svg 图标
- pine-script - 显示带有最后一笔交易的“图例”文本框
- if-statement - MS Word Mail Merge 中数字图片格式切换的 IF 语句
- python-3.x - 通过条带化列名过滤列
- loops - 如何使用 for 循环附加两个数字列表?