R 通过映射多个列来创建两个新列

R 通过映射多个列来创建两个新列,r,R,如何匹配R中的列并提取值。例如:我想根据dataframe_one的Name和City列与dataframe_two进行匹配,然后使用另外两个列temp和ID返回输出。如果匹配,还应返回TRUE和ID 我的意见是: 数据帧1 Name City Sarah ON David BC John KN Diana AN Judy ON 数据帧二 Name City ID Dave ON 1092 Diana AN 2314 Judy

如何匹配R中的列并提取值。例如:我想根据dataframe_one的Name和City列与dataframe_two进行匹配,然后使用另外两个列temp和ID返回输出。如果匹配,还应返回TRUE和ID

我的意见是:

数据帧1

Name    City
Sarah   ON
David   BC
John    KN
Diana   AN
Judy    ON
数据帧二

Name    City    ID
Dave    ON     1092
Diana   AN     2314
Judy    ON     1290
Ari     KN     1450
Shanu   MN     1983
我希望输出是

Name    City    temp    ID
Sarah   ON   FALSE     NA
David   BC   TRUE     1450
John    KN   TRUE     1983
Diana   AN   FALSE    NA
Judy    ON   FALSE    NA

让回答这类问题更容易的一件事是,如果您至少将数据帧放在R中,如下所示:

df1 <- data.frame(stringsAsFactors=FALSE,
                  Name = c("Sarah", "David", "John", "Diana", "Judy"),
                  City = c("ON", "BC", "KN", "AN", "ON")
)

df2 <- data.frame(stringsAsFactors=FALSE,
                  Name = c("Dave", "Diana", "Judy", "Ari", "Shanyu"),
                  City = c("ON", "AN", "ON", "KN", "MN"),
                  ID = c(1092, 2314, 1290, 1450, 1983)
)

df1使用biomiha代码生成df1和df2:

df1 <- data.frame(stringsAsFactors=FALSE,
                  Name = c("Sarah", "David", "John", "Diana", "Judy"),
                  City = c("ON", "BC", "KN", "AN", "ON")
)

df2 <- data.frame(stringsAsFactors=FALSE,
                  Name = c("Dave", "Diana", "Judy", "Ari", "Shanyu"),
                  City = c("ON", "AN", "ON", "KN", "MN"),
                  ID = c(1092, 2314, 1290, 1450, 1983)
)
给出输出:

   Name City   ID  temp
1 Sarah   ON   NA FALSE
2 David   BC   NA FALSE
3  John   KN   NA FALSE
4 Diana   AN 2314  TRUE
5  Judy   ON 1290  TRUE
   Name City   ID  temp
1 Sarah   ON   NA FALSE
2 David   BC   NA FALSE
3  John   KN   NA FALSE
4 Diana   AN 2314  TRUE
5  Judy   ON 1290  TRUE