r - 为出现多次的观测值分配一个主 ID

标签 r

我有一个数据集,其中一个人可以出现多次。 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/

相关文章:

r - ggplot 函数内 aes(...) 中变量的范围

R:按位置(添加、减去或替换的一个元素)查找并计算嵌套在列表中的字符向量之间的所有差异

r - 从 cut 中提取断点

r - 在排列的图之间绘制一个 "grid"

r - 如何将列值与定界符以及定界符的异常(exception)结合起来?

regex - 如何在 R 中引用超过\9 的捕获组?

r - 为什么 is.na() 改变它的参数?

保留 : ld: library not found for -lssl

r - Emacs 在工具提示中自动完成 ESS,而不是在缓冲区中

c++ - 使用 Rcpp 的 R 快速 cbind 矩阵