【发布时间】:2017-01-19 11:59:22
【问题描述】:
我有一个数据表,我想在其中计算几列中每一行的几何平均值。有些值会为零,所以我需要将它们排除在外。
来自 Wiki 的几何平均值是:“几何平均值被定义为 n 个数字的乘积的 n 次根”,因此对于 2 个数字,它只是它们乘积的平方根。
在我的例子中,每行的第 n 个根会有所不同,具体取决于其中有多少非零值。
在我下面的示例中,结果列的前 2 行的计算方式如下:
1: (a * c)^(1/2)
2: (a * b * c)^(1/3)
所以我需要公式来查看列 a:c,取非零值的乘积,然后取有多少非零值的 n 次根。
library(data.table)
dt <- data.table(a = c(0.5, 0.3,0,0.6), b = c(0,0.4,0.1,0),
c = c(0.9,0.5,0.1,0), Result = c(0.67, 0.39, 0.1, 0.6))
【问题讨论】:
-
是预期输出的“结果”吗
-
所有数字都是非负数吗?
-
抱歉,结果是预期的输出,所有值都是非负数。
标签: r data.table