我有两个数据框df_a
,其中包含两列colA
,colB
和df_b
,其中一列colA
。
df_a <- data.frame(colA = sample(1:10, 10), colB = sample(LETTERS[1:20],10))
> df_a
colA colB
1 2 F
2 8 J
3 5 G
4 9 A
5 10 R
6 4 N
7 7 D
8 1 B
9 3 Q
10 6 H
df_b <- data.frame(colA = sample(1:10, 10))
> df_b
colA
1 9
2 5
3 3
4 7
5 1
6 8
7 2
8 4
9 10
10 6
在将colB
df_b
与colA
df_a
进行比较后,我必须在colA
中创建一个新列df_b
。
> df_b$colB <- df_a[df_a$colA %in% df_b$colA,'colB']
> df_b
colA colB
1 9 F
2 5 J
3 3 G
4 7 A
5 1 R
6 8 N
7 2 D
8 4 B
9 10 Q
10 6 H
两个数据帧中的相应值不相同。例如,在df_a
中,colA
值9在colB
中有A.而在df_b
中,colA
值9在colB
中具有F.此问题是由于未排序的数据帧吗?
注意:我找不到类似的问题,这甚至可能是重复的。我想了解错误的根本原因。
原始任务是填充值,以替换NA
中的df_b
。
df_a <- data.frame(colA = sample(1:10, 10), colB = sample(LETTERS[1:10],10))
df_b <- data.frame(colA = sample(1:10, 10), colB = sample(c(LETTERS[1:10], 'NA'),10))