根据R中另一列的ID在一列中分配ID
我首先根据第1列分配了一个唯一的id根据R中另一列的ID在一列中分配ID,r,dataframe,dplyr,tidyverse,R,Dataframe,Dplyr,Tidyverse,我首先根据第1列分配了一个唯一的id column1 id.1 column2 A 1 C A 1 B B 2 B C 3 A C 3 D 我想把id.1的值分配给第2列 column1 id.1 column2 id.2 A 1 C 3 A 1 B 2 B
column1 id.1 column2
A 1 C
A 1 B
B 2 B
C 3 A
C 3 D
我想把id.1的值分配给第2列
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
如果再次得到答复,我很抱歉。我一直在努力寻找一个漂亮的解决方案。感谢您抽出时间您可以使用
因子
,如下所示:
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>
transform(df,id.2=因子(column2,unique(column1),unique(id.1)))
第1列id.1第2列id.2
1 A 1 C 3
2 A 1 B 2
3b2b2
4 C 3 A 1
5C3D
匹配是执行此操作的常用方法:
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)
谢谢@Gregor简洁快速的回答谢谢@Onyanbu的帮助。我非常感谢