html表格统计平均成绩,使用R中的data.table计算加权平均值,其中一个表列中的权重...

我有一个data.table如下所示.我正在尝试计算数据子集的加权平均值.我尝试了以下MWE的两种方法

set.seed(12345)

dt = data.table(a =c(10,20,25,10,10),b=rnorm(5),c=rnorm(5),d=rnorm(5),e=rnorm(5))

dt$key = sample(toupper(letters[1:3]),5,replace=T)

setkey(dt, key)

首先对.SD进行子集化并使用lapply调用,这不起作用(并且实际上并不是这样)

dt[,lapply(.SD,function(x) weighted.mean(x,.SD[1])),by=key]

其次尝试定义一个函数来应用于.SD,就像我使用ddply一样.

这也失败了.

wmn=function(x){

tmp = NULL

for(i in 2:ncol(x)){

tmp1 = weighted.mean(x[,i],x[,1])

tmp = c(tmp,tmp1)

}

return(tmp)

}

dt[,wmn,by=key]

有关如何最好地做到这一点的任何想法?

谢谢

编辑

更改为所选列上的wmn公式的错误.

第二次编辑

加权平均公式反转并添加了set.seed

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值