【发布时间】:2020-02-25 08:41:29
【问题描述】:
我很生气,因为我正在使用 sum() 函数,它毫无意义地显示了不同的结果。 我有 4 个数值变量:A、B、M、N。 我还有一个权重变量:W。
如果我做加权和:
sum(df$W * (df$A), na.rm = T) = AR
sum(df$W * df$A, na.rm = T) = AR
结果是一样的。
如果我添加 B:
sum(df$W * (df$A + df$B), na.rm = T) = ABR
sum(df$W * df$A, df$W * df$B, na.rm = T) = ABR
结果是一样的。
如果我添加 M:
sum(df$W * (df$A + df$B + df$M), na.rm = T) = ABMR1
sum(df$W * df$A, df$W * df$B, df$W * df$M, na.rm = T) = ABMR2
结果变得不同。
如果我加 N:
sum(df$W * (df$A + df$B + df$M + df$N), na.rm = T) = ABMNR1
sum(df$W * df$A, df$W * df$B, df$W * df$M, df$W * df$N, na.rm = T) = ABMNR2
结果不一样。
所以看起来 M 和/或 N 变量有一些问题。但是,如果我开始添加 M 和 N 变量...:
sum(df$W * (df$M), na.rm = T) = MR
sum(df$W * df$M, na.rm = T) = MR
结果是一样的。
如果我加 N:
sum(df$W * (df$M + df$N), na.rm = T) = MNR
sum(df$W * df$M, df$W * df$N, na.rm = T) = MNR
结果是一样的。
现在,如果我添加 A:
sum(df$W * (df$M + df$N + df$A), na.rm = T) = MNA1
sum(df$W * df$M, df$W * df$N, df$W * df$A, na.rm = T) = MNA2
结果变得不同。
如果我添加 B:
sum(df$W * (df$M + df$N + df$A + df$B), na.rm = T) = MNAB1
sum(df$W * df$M, df$W * df$N, df$W * df$A, df$W * df$B, na.rm = T) = MNAB2
结果不一样。
现在看来问题来自 A 或 B 变量。 这怎么可能?如果我将 W 变量与变量的总和相乘(第一种方式),或者我添加不同的变量(第二种方式),有什么区别吗?
非常感谢您提供的任何帮助!
【问题讨论】:
-
我怀疑这是由于
NA中的df$A和/或df$B与na.rm=TRUE结合造成的。 -
嗨 H.Castells。欢迎来到 StackOverflow!请阅读有关how to ask a good question 的信息以及如何提供minimale reproducible example。这样你就可以帮助别人帮助你!
-
如果您提供您使用的数据,那就太好了,以便其他用户可以重现该问题。为此使用
dput(data)函数并将其包含在您的帖子中。 -
结果有多少“不同”?请提供一个可重现的示例。