R 删除向量中大于值的元素

R 删除向量中大于值的元素,r,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(1中的i:长度(Z)){ 如果(差异[[i]]>=(2

我需要删除
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(1中的i:长度(Z)){
如果(差异[[i]]>=(2*std)){

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

Z[diff >= 2*std] = NA
或者,如果只想筛选出不满足条件的行,请仅子集所需的行:

Z <- Z[diff < 2*std]

Z请通过包含样本数据使其可复制。事实上,很难看出您的要求。您是否有一些相关的数据帧,
Z
ucl
lcl
x
?您不想尝试将
NULL
粘贴到向量中。
NULL
是一个半特殊值,但不是唯一值与通过移除值来减少向量相同。替换
NA
与移除数据点不同。如果我正确解释OP的问题,她最好使用
Z Simplefish,这是错误的。错误的建议。