我有一个数据集,其中一个人可以出现多次。 id1
是分配的唯一 ID 的向量。有些人会获得两个唯一的 ID,因为它们出现多次。 id2
列出某人的别名。
有:
have <- data.frame(id1 = c(1, 2, 3, 4, 5, 6, 7),
id2 = c(4, NA, 6, NA, 7, NA, NA))
have
# id1 id2
#1 1 4
#2 2 NA
#3 3 6
#4 4 NA
#5 5 7
#6 6 NA
#7 7 NA
我想创建一个新变量id
,它是协调后的id。
想要:
# id1 id2 id
#1 1 4 1
#2 2 NA 2
#3 3 6 3
#4 4 NA 1
#5 5 NA 7
#6 6 NA 3
#7 7 5 5
最佳答案
你的意思是这样的吗? (没有捕获生成id
的确切逻辑)
transform(
have,
id = replace(id1,na.omit(id2),id1[!is.na(id2)])
)
这给出了
id1 id2 id
1 1 4 1
2 2 NA 2
3 3 6 3
4 4 NA 1
5 5 NA 7
6 6 NA 3
7 7 5 7
关于r - 为出现多次的观测值分配一个主 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66001057/