r - 如何将多个频率表堆叠到 R 中的一个表中?
问题描述
我不知道我在尝试寻找问题的答案时是否使用了错误的术语,但我一直无法弄清楚什么似乎是一个简单的问题。我有一个包含多个变量的大型数据集,我想在这些数据集上运行一系列 2 路频率表。我的变量之一是“国家”,我需要按每个国家(其中有 31 个)划分我的频率。我有 3 个变量,Protest、Riot,以及两者的组合 - Demonstrations。我正在对每个滞后数据面板变量 - lag.value 做一个交叉表。我了解如何将它们编码为独立测试,但是,有没有办法将所有内容“堆叠”在一个表中?就像 lag.value 在顶部一样,每一行代表一个国家的输出?还是选择性地列出几个国家进行测试?
DT <- data.table(Country = rep(c("India", "Pakistan", "Sudan"), 12),
Protest = sample( 0:1, size = 12, replace = T),
Riot = sample( 0:1, size = 12, replace = T),
Demonstrations = sample( 0:1, size = 12, replace = T),
lag.value = sample( 0:1, size = 12, replace = T))
DT[Country == 'India', table(Protest, lag.value)]
DT[Country == 'Pakistan', table(Protest, lag.value)]
DT[Country == 'Sudan', table(Protest, lag.value)]
只看对 lag.value 的抗议......我明白如何做的是个别表格
#india
# lag.value
#Protest 0 1
# 0 3 3
# 1 3 3
#pakistan
# lag.value
#Protest 0 1
# 1 3 9
#sudan
#lag.value
#Protest 0 1
# 0 3 3
# 1 6 0
有没有办法让一张干净的桌子(带有国家名称)显示?像这样的东西:
# lag value
#Protest 0 1
# India 0 3 3
# 1 3 3
# Pakistan 1 3 9
# Sudan 0 3 3
# 1 6 0
解决方案
table
而不是在每个子集上单独运行,而是ftable
通过包含“国家”列来执行
DT[, ftable(Country, Protest, lag.value)]
lag.value 0 1
Country Protest
India 0 0 6
1 0 6
Pakistan 0 0 9
1 3 0
Sudan 0 0 0
1 0 12
推荐阅读
- firebase - Firebase 存储规则在 Firestore 文档上查找数据?
- c# - IBM MQ with C# 如何将消息头更改为 MQHRF
- python - 跳转到另一个类后如何返回主类?
- c# - LINQ:方法“GroupBy”没有重载需要 6 个参数/IGrouping
不包含定义 - machine-learning - 为什么 K-fold 交叉验证会构建 K+1 模型?
- javascript - 图像未显示在 github 页面上
- powershell - 用于获取部分 XML 节点内容的 Powershell 脚本
- c++ - 如何使用 USB 2 最小化延迟
- python - Python - 解析 INI 文本(不是 INI 文件)
- firebase - Crashlytics/Firebase 中的搜索选项,我可以在其中按崩溃名称进行搜索?