我希望有人能帮我清理我的数据使用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 谢谢你的帮忙!
发布于 2014-03-30 17:26:26
首先看看哪些行符合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 NAhttps://stackoverflow.com/questions/22746954
复制相似问题