我有一个数据表,想要在几列中为每一行计算几何平均值。其中某些数值为零,因此我需要将其排除。
维基百科上的几何平均数定义为:“几何平均数被定义为n个数字的乘积的n次方根”,因此对于2个数字,它们的几何平均数就是它们的乘积的平方根。
在我的情况下,每行的n次方根将根据其中非零值的数量而变化。
在下面的示例中,结果列的前两行计算如下:
1:(a * c)^(1/2)
2:(a * b * c)^(1/3)
因此,我需要让公式查看a:c列,取非零值的乘积,然后取出非零值的数量的n次方根。
维基百科上的几何平均数定义为:“几何平均数被定义为n个数字的乘积的n次方根”,因此对于2个数字,它们的几何平均数就是它们的乘积的平方根。
在我的情况下,每行的n次方根将根据其中非零值的数量而变化。
在下面的示例中,结果列的前两行计算如下:
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))