删除向量中大于值的元素

时间:2014-01-01 03:08:37

标签: r

我需要移除元素(我正在使用误差条绘制,所以我需要从下面的所有四个向量中删除该数据点)diff向量大于2 * std。这是我的想法:

for (i in 1:length(Z)){
  if (diff[[i]]>=(2*std)){
    Z[[i]] <- NULL
    ucl[[i]] <- NULL
    lcl[[i]] <- NULL
    x[[i]] <- NULL
    }
} 

for循环在第一次进入if语句后完全停止。我完全靠自己学习了R,所以请回答我,好像我什么都不知道。

1 个答案:

答案 0 :(得分:3)

不要使用for循环。如果您想用NA替换某些值,请执行以下操作:

Z[diff >= 2*std] = NA

或者,如果您只想过滤掉不满足条件的行,请仅对您想要的行进行子集化:

Z <- Z[diff < 2*std]