首页 > 解决方案 > 如何将 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 初学者,所以非常感谢任何帮助。谢谢。

标签: rdplyrrows

解决方案


假设该列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 日创建


推荐阅读