我有两个数据框(这是头部):
1:
# A tibble: 6 x 2
twitterID Username
<chr> <chr>
1 849567328899616768 AchimKessler
2 1117749912 Achim_P
3 186552155 NA
4 172269309 agnieszka_mdb
5 1127961248493129728 StegemannAlbert
6 1178640571725955073 BDobrindt
2:
# A tibble: 6 x 3
Username TwitterID Name
<chr> <dbl> <chr>
1 achimkessler NA Achim Kessler
2 achim_p NA Achim Post
3 achim_p NA Achim Post
4 achim_p NA Achim Post (Minden)
5 NA NA Adis Ahmetovic
6 NA NA Agnes Alpers
我希望通过用户名加入他们,用数据帧 1 中的 twitterID 填充数据帧 2 中的 TwitterID 列
使用tidyverse. 您可以先将用户名coalesce设为相同大小写,然后加入第二个数据帧,然后使用ID 替换 NA(如果可用)。
library(tidyverse)
df1 %>%
dplyr::mutate(Username = tolower(Username)) %>%
tidyr::left_join(., df2, by = "Username") %>%
dplyr::mutate(TwitterID = coalesce(TwitterID.x, TwitterID.y)) %>%
dplyr::select(-TwitterID.x,-TwitterID.y)