根据另一个数据帧匹配和更新数据帧的列

时间:2016-04-12 14:31:06

标签: r dataframe

我有两个数据框df_a,其中包含两列colAcolBdf_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_bcolA 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))

0 个答案:

没有答案