r - 如何将 prop.table 用于多行
问题描述
我有一个非常大的数据集(大约 45,000 obs。)并且想确定个人为各种类别产生的错误(“1”)和正确行为(“0”)的比例。每行代表一个不同的人,一个人可能出现不止一次。
数据集如下所示:
Type 1 Type 2 Individual
1 0 T1
0 0 T4
0 1 T5
0 0 T1
1 1 T1
0 1 T1
1 1 T3
我想使用 prop.table 函数,但我似乎只能找到整个数据集或相对于整个数据集的每个人的错误和正确操作。到目前为止,我尝试过:
prop.table(table(SourcePop$error)
prop.table(table(SourcePop$error, SourcePop$individual)
我想为每个人找到这些仅与他们自己相关的比例(即仅查看 T1、T2 等的比例)。我是一个巨大的 R 初学者,所以非常感谢任何帮助。谢谢。
解决方案
假设该列error
指的是列Type 1
或示例数据,则可以通过指定参数Type 2
来计算按组或个人的比例。margin
SourcePop <- read.table(text=" 'Type 1' 'Type 2' Individual
1 0 T1
0 0 T4
0 1 T5
0 0 T1
1 1 T1
0 1 T1
1 1 T3", header = TRUE)
prop.table(table(SourcePop$Type.1))
#>
#> 0 1
#> 0.5714286 0.4285714
prop.table(table(SourcePop$Type.1, SourcePop$Individual), margin = 2)
#>
#> T1 T3 T4 T5
#> 0 0.5 0.0 1.0 1.0
#> 1 0.5 1.0 0.0 0.0
prop.table(table(SourcePop$Type.2, SourcePop$Individual), margin = 2)
#>
#> T1 T3 T4 T5
#> 0 0.5 0.0 1.0 0.0
#> 1 0.5 1.0 0.0 1.0
由reprex 包(v0.3.0)于 2020 年 3 月 28 日创建
推荐阅读
- xml - xslt 2.0 - 从递归结构中获取最新节点
- c# - 从 azure 数据库 .Net core 3.0 以编程方式创建 .bacpac 文件
- python - 尝试检索文档信息时出现 Couchbase.exceptions._TimeoutError
- mysql - 如何使用 sequelize 在 MySQL 中处理用户状态
- python - Python - 硒:selenium.common.exceptions.WebDriverException
- python - 循环遍历所有串行地址以定位硬件
- button - 有没有办法让我们的用户通过它的 ID 从另一个网站(如 Salesforce、Oracle CX)轻松找到交易?
- android - 确定支持录制视频的最大比特率
- c# - 透视网格预过滤器设置
- algorithm - 用于计算 nCr % 10000007 的数的模乘逆(组合)