提前抱歉提出愚蠢的问题,但我无法在搜索中找到它。
这个问题看起来很简单,但在工作日结束时我的大脑就崩溃了:
x=c(1,1,1,1,1,1,2,2,5,5)
y=c(1,2,3,4,5,6,7,8,9,10)
z=data.frame(cbind(x,y))
a=0
for (i in z$x){
if(i==2){
z$y="NA"
a=a+1
}
}
关键在于必须检查z$x
以及x=2
incert" NA"对应z$y
。我得到了这个:
z x y
1 1 NA
2 1 NA
3 1 NA
4 1 NA
5 1 NA
6 1 NA
7 2 NA
8 2 NA
9 5 NA
10 5 NA
请注意, a 的计数器正常工作,因为真正z$x=2
只有两次。
a
[1] 2
提前谢谢。
答案 0 :(得分:1)
您可以简单地使用以下内容。
z$y[z$x == 2] <- NA
z
## x y
## 1 1 1
## 2 1 2
## 3 1 3
## 4 1 4
## 5 1 5
## 6 1 6
## 7 2 NA
## 8 2 NA
## 9 5 9
## 10 5 10