我有两个不同行数的DF,这些行共享一些相同的行名称:
DF1 DF2
Col
Name1 Name1 A
Name3 Name2 B
Name4 Name3 C
Name7 Name4 D
Name5 E
Name6 F
Name7 G
但是我想在DF1中创建一个列,根据匹配两个DF共享的行名,它在DF2中的Col的行数较少:
DF1 DF2
Col Col
Name1 A Name1 A
Name3 C Name2 B
Name4 D Name3 C
Name7 G Name4 D
Name5 E
Name6 F
Name7 G
答案 0 :(得分:2)
这将解决你想要的问题
DF1 = data.frame(Name = c(1,3,4,7))
DF2 = data.frame(Name = 1:7,Col = letters[1:7])
DF1$Col = DF2$Col[match(DF1$Name,DF2$Name)]
答案 1 :(得分:0)
tidyverse
方式:
DF1 <- data.frame(
Name = c(1, 3, 4, 7))
DF2 <- data.frame(
Name = seq(1:7),
Col = LETTERS[1:7]);
DF1 %>% left_join(DF2);
# Name Col
#1 1 A
#2 3 C
#3 4 D
#4 7 G