相关疑难解决方法(0)

具有data.table的组的变量加权和

我正在寻找一个解决方案,用data.table计算一些变量的加权和.我希望这个例子足够清楚.

require(data.table)

dt <- data.table(matrix(1:200, nrow = 10))
dt[, gr := c(rep(1,5), rep(2,5))]
dt[, w := 2]

# Error: object 'w' not found
dt[, lapply(.SD, function(x) sum(x * w)),
   .SDcols = paste0("V", 1:4)]

# Error: object 'w' not found
dt[, lapply(.SD * w, sum),
   .SDcols = paste0("V", 1:4)]

# This works with out groups
dt[, lapply(.SD, function(x) sum(x * dt$w)),
   .SDcols = paste0("V", 1:4)]

# It does not work by groups
dt[, lapply(.SD, function(x) sum(x * dt$w)),
   .SDcols = paste0("V", …
Run Code Online (Sandbox Code Playgroud)

aggregate r weighted data.table

5
推荐指数
1
解决办法
2712
查看次数

使用 data.table 计算每个子组的比例

对于以下简单数据集;

   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
Run Code Online (Sandbox Code Playgroud)

下面的代码:

df[, .N, by = list(country, year)][,prop := N/sum(N)]
Run Code Online (Sandbox Code Playgroud)

给出观测值占观测值总数的比例。然而我想要的是衡量每个国家的比例。我应该如何调整这段代码才能给出正确的比例?

期望的输出:

   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
Run Code Online (Sandbox Code Playgroud)

r mean data.table

3
推荐指数
1
解决办法
4842
查看次数

标签 统计

data.table ×2

r ×2

aggregate ×1

mean ×1

weighted ×1