我需要移除元素(我正在使用误差条绘制,所以我需要从下面的所有四个向量中删除该数据点)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,所以请回答我,好像我什么都不知道。
答案 0 :(得分:3)
不要使用for循环。如果您想用NA替换某些值,请执行以下操作:
Z[diff >= 2*std] = NA
或者,如果您只想过滤掉不满足条件的行,请仅对您想要的行进行子集化:
Z <- Z[diff < 2*std]