【发布时间】:2017-12-04 05:58:37
【问题描述】:
我试图通过将异常值替换为 NA 来估算 tibble 中的异常值。以下是我的代码:
for (i in colnames(numTable)){
m <- mean(pull(numTable[,i]), na.rm=TRUE)
s<-sd(pull(numTable[,i]),na.rm=TRUE)
numTable %>%
mutate(numTable[,i] = replace(numTable[,i], abs(numTable[,i]-m)>3*s,na.rm=TRUE), NA)
}
我不断收到显示
的错误消息Error: unexpected '=' in:
" numTable %>%
mutate(numTable[,i] ="
请帮助我。谢谢。
【问题讨论】:
-
为什么需要
for循环。您可以使用mutate_all或mutate_at即numTable %>% mutate_all(funs(replace(., abs(.-mean(., na.rm = TRUE))> 3 * sd(., na.rm = TRUE)), NA) -
我将其更改为
numTable %>% mutate_at(funs(replace(numTable[,i], abs(numTable[,i]-m)> 3 * s(numTable[,i], na.rm = TRUE)), NA)),但出现错误Error: Can't create call to non-callable object@akrun -
我说
mutate_all而不是mutate_at如果你使用mutate_at,你需要指定列索引或名称 -
很抱歉,mutate_all 给出了同样的错误。
-
最好通过更新帖子来显示示例数据的
dput