【发布时间】:2018-09-24 13:41:09
【问题描述】:
对于下面的简单数据集;
row country year
1 NLD 2005
2 NLD 2005
3 BLG 2006
4 BLG 2005
5 GER 2005
6 NLD 2007
7 NLD 2005
8 NLD 2008
以下代码:
df[, .N, by = list(country, year)][,prop := N/sum(N)]
给出观察值与总观察值的比例。然而,我想要的是衡量每个国家的比例。我应该如何调整这段代码来给我正确的比例?
期望的输出:
row country year prop
1 NLD 2005 0.6
2 NLD 2005 0.6
3 BLG 2006 0.5
4 BLG 2005 0.5
5 GER 2005 1
6 NLD 2007 0.2
7 NLD 2005 0.6
8 NLD 2008 0.2
【问题讨论】:
-
df[, {ty <- table(year); .(prop=as.vector(ty)/sum(ty), year=names(ty))}, by=country] -
@Cath 我最终用你的方法得到了 6 行。
-
@AndreElrico 这很正常,这只是为了获得所需的输出而遵循(或不遵循)的路径;-)
标签: r data.table mean