【发布时间】:2021-08-02 03:14:37
【问题描述】:
我有一个包含 3 个变量、1 个频率列的数据表,我希望添加另一个比例列。
变量 1 有 4 个唯一值。 变量 2 有 5, 而变量 3 有 2。
频率记录了发生的次数。 但是如果我将prop.table添加到它,它将计算整个data.table的比例,当我真的希望它计算变量2的子集中的比例时。
我想过迭代,但在表格中似乎很复杂。
【问题讨论】:
我有一个包含 3 个变量、1 个频率列的数据表,我希望添加另一个比例列。
变量 1 有 4 个唯一值。 变量 2 有 5, 而变量 3 有 2。
频率记录了发生的次数。 但是如果我将prop.table添加到它,它将计算整个data.table的比例,当我真的希望它计算变量2的子集中的比例时。
我想过迭代,但在表格中似乎很复杂。
【问题讨论】:
您可以使用 aggregate 函数(或 tapply)对变量 2 的类别中的所有计数求和,然后在结果上使用 prop.table 或类似函数。
如果您想使用 tidyverse 而不是基数 R,那么这将是 group_by 后跟 summarise 以添加到每个组中,然后再次 prop_table 以计算比例。
【讨论】:
pivot_longer 在计算摘要之前使数据框整洁。如果必须包含零频率类别,则需要一个最终的 expand() 或类似名称。