R中数据表的迭代过滤

R中数据表的迭代过滤,r,loops,filter,R,Loops,Filter,我有一个包含3个变量、1个频率列的数据表,我希望添加另一个比例列 变量1有4个唯一值。 变量2有5, 变量3有2 频率捕捉发生的次数。 但是如果我将prop.table添加到其中,它将计算整个data.table的比例,而我确实希望它计算变量2子集中的比例 我曾想过迭代,但它在表格中似乎很复杂。您可以使用aggregate函数(或tapply)对变量2类别内的所有计数求和,然后对结果使用prop.table或类似方法 如果您想使用tidyverse而不是base R,那么这将是一个group_

我有一个包含3个变量、1个频率列的数据表,我希望添加另一个比例列

变量1有4个唯一值。 变量2有5, 变量3有2

频率捕捉发生的次数。 但是如果我将prop.table添加到其中,它将计算整个data.table的比例,而我确实希望它计算变量2子集中的比例


我曾想过迭代,但它在表格中似乎很复杂。

您可以使用
aggregate
函数(或tapply)对变量2类别内的所有计数求和,然后对结果使用
prop.table
或类似方法


如果您想使用tidyverse而不是base R,那么这将是一个
group_by
,然后是
summary
以添加到每个组中,然后再次使用
prop\u table
计算比例。

另一种tidyverse解决方案是在计算汇总之前,将数据框变得整洁。如果必须包括零频率类别,则需要最终的
expand()
或类似版本。