繁体   English   中英

根据 R 中另一列中的 ID 分配一列中的 ID

[英]Assign an ID in one column based on the ID in another column in R

我首先根据第 1 列分配了一个唯一 ID

column1   id.1 column2 
   A      1      C
   A      1      B
   B      2      B
   C      3      A
   C      3      D

我想将 id.1 值分配给 column2

column1   id.1 column2  id.2
   A      1      C        3
   A      1      B        2
   B      2      B        2
   C      3      A        1
   C      3      D        NA

如果再次回答此问题,我很抱歉。 我一直在努力寻找一个漂亮的解决方案。 感谢您的时间

match是执行此操作的常用方法:

df$id.2 = df$id.1[match(df$column2, df$column1)]
df
#   column1 id.1 column2 id.2
# 1       A    1       C    3
# 2       A    1       B    2
# 3       B    2       B    2
# 4       C    3       A    1
# 5       C    3       D   NA

或者使用dplyr语法:

mutate(df, id.2 = id.1[match(column2, column1)])

使用这些数据:

df = read.table(text = 'column1   id.1 column2 
    A      1      C
    A      1      B
    B      2      B
    C      3      A
    C      3      D', header = T)

您可以使用如下所示的factor

 transform(df, id.2 = factor(column2, unique(column1), unique(id.1)))
  column1 id.1 column2 id.2
1       A    1       C    3
2       A    1       B    2
3       B    2       B    2
4       C    3       A    1
5       C    3       D <NA>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM