按组计算数据集子集的比例

时间:2014-11-12 11:25:29

标签: r

这可能非常简单,但由于我没有深入研究,我希望能在这里发布一些帮助。

我想计算分类变量数据集的按比例和比例的比例和标准误差。所以我有2个变量v1是1到4而v2是1到9.我想计算1的比例(也是2,3 ... 9({{1} }}))由v2组成。

手工操作很容易因为v1的使用,但我不想手工做:)

用更简单的方式说:我想找%,但我们可以使用mean,因为它是数值变量。我们有1000个人,其中300个属于table(v1, v2)的类别1,有200个属于v1的类别2等。v1为相同,类别1为400,依此类推。如果我按v2组计算类别1(v1)的百分比,那么将是300 / 400,200 / 400等等。

dataframe sample

v2

期望的输出:按组id v1 v2 1 1 1 2 1 1 3 2 1 4 2 1 5 3 2 6 3 2 7 4 2

的比例 希望它有意义!

2 个答案:

答案 0 :(得分:0)

尝试:

library(data.table)
setDT(dt)[v1==1,list(meanv2=mean(v2), sev2=se(v2)),by=v3]

如果v1 == 1,则mean(v1)将等于1.

答案 1 :(得分:0)

这是我上面的问题的答案,但同时我问另一个问题。 我找到了执行此操作的代码,但我还需要计算标准错误

tapply(dt$v1, dt$v2, function(x){prop.table(table(x))})

标准错误是使用此公式SE = sqrt(p*(1-p)/n),其中p=proportionn=total population

我的问题是:如何在上面的代码中包含SE?

提前谢谢你!