我希望有人可以帮我用R清理我的数据。
示例数据:
seqno rectyp ps04
1 1
1 1
1 89
1 89
2 1 0
2 1 1
2 1
2 90
2 89
3 1
3 1
3 1
3 90
3 90
3 89 1
3 89 5
3 89 6
3 89
我想要为某个ps04==1
值查找值rectype==1
和seqno
。找到后,它会用值seqno
填充1
的整行。预期的产出将是:
seqno rectyp ps04
1 1
1 1
1 89
1 89
2 1 1
2 1 1
2 1 1
2 90 1
2 89 1
3 1
3 1
3 1
3 90
3 90
3 89 1
3 89 5
3 89 6
3 89
感谢您的帮助!
答案 0 :(得分:1)
首先看看哪些行符合t$ps04==1 & t$rectyp==1
。获取seqno
,然后为符合条件的所有行设置i
等于TRUE
。
> i <- t$seqno %in% t$seqno[t$ps04==1 & t$rectyp==1]
> i
[1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> t$ps04[i] <- 1 # set values to 1
> t
seqno rectyp ps04
1 1 1 NA
2 1 1 NA
3 1 89 NA
4 1 89 NA
5 2 1 1
6 2 1 1
7 2 1 1
8 2 90 1
9 2 89 1
10 3 1 NA
11 3 1 NA
12 3 1 NA
13 3 90 NA
14 3 90 NA
15 3 89 1
16 3 89 5
17 3 89 6
18 3 89 NA