我的问题是用平均数替换列中的所有“ True”。 我确定了以下异常值:
high <- mean(df$variable1) + sd(df$variable1) * 3
low <- mean(df$variable1) - sd(df$variable1) * 3
df$Outlier <- (df$variable1 < low | df$variable1 > high)
因此,结果是带有一些“ True”和“ False”的列 我想用其余数据点的平均值替换所有“ True”。
我应该怎么做:)?
答案 0 :(得分:1)
要计算没有异常值的平均值:
avg = mean(df$Variable1[!df$outlier])
,然后仅替换离群值:
df$Variable1[df$outlier] = avg
或者,一行:
df$Variable1[df$outlier] = mean(df$Variable1[-df$outlier])
(尽管用平均值代替离群值听起来确实不适合我)