![](/img/trans.png)
[英]Get the max date based on multiple columns of an R dplyr / tidyverse dataframe
[英]Mapping multiple columns using dplyr or tidyverse in R
我的数据类似于以下数据。 注意我这里没有提到的两个姓氏或名字
df1<-read.table(text= "id Surname Name 1234 Hamidsar Smith 139 Sandarscom Vicky 234 Bates May 100 Murphu Beki 941 Jool Susan 469 Sali John 990 susai Alison",header=TRUE)
另一个数据框如下:
df2<-read.table(text= "id Surname Name 990 susai Anis 81B Rosak Roy 340 Molipoor Vicky 139 Bates May 941 Ameri David 990 susai Alison 139 Bates May 101 CICI Beki 139 Sandarscom Vicky 1234 Hamidsar Smith",header=TRUE)
我想映射 id , surname 和 name 以获得下表
id Surname Name Map 1234 Hamidsar Smith id,Surname,Name 139 Sandarscom Vicky id,Surname,Name 234 Bates May Surname, Name 100 Murphu Beki Name 941 Jool Susan id 469 Sali John NA 990 susai Alison id,Surname,Name
有没有可能得到它? 我阅读了一些链接,但它们对我没有帮助
library(tidyverse)
library(glue)
首先,我将stringsAsFactors=FALSE
设置为您的代码以生成数据以避免在路上stringsAsFactors=FALSE
。
df1<-read.table(text= "id Surname Name
1234 Hamidsar Smith
139 Sandarscom Vicky
234 Bates May
100 Murphu Beki
941 Jool Susan
469 Sali John
990 susai Alison",header=TRUE, stringsAsFactors=FALSE)
df2<-read.table(text= "id Surname Name
990 susai Anis
81B Rosak Roy
340 Molipoor Vicky
139 Bates May
941 Ameri David
990 susai Alison
139 Bates May
101 CICI Beki
139 Sandarscom Vicky
1234 Hamidsar Smith",header=TRUE, stringsAsFactors=FALSE)
下面我确保id
设置为字符类型,以便它在df2
相同,然后我只是应用查找来说明“如果此值在df2
,则显示变量的名称,否则什么都不显示”。 然后我使用glue
将它们组合成一个Map
变量。
df1 %>%
mutate(id = as.character(id),
Map_id = if_else(id %in% df2$id, "id", NA_character_),
Map_Surname = if_else(Surname %in% df2$Surname, "Surname", NA_character_),
Map_Name = if_else(Name %in% df2$Name, "Name", NA_character_),
Map = glue("{Map_id} {Map_Surname} {Map_Name}", .na = "") %>%
str_trim() %>%
str_replace_all(" ", ", ")) %>%
select(id, Surname, Name, Map)
#> id Surname Name Map
#> 1 1234 Hamidsar Smith id, Surname, Name
#> 2 139 Sandarscom Vicky id, Surname, Name
#> 3 234 Bates May Surname, Name
#> 4 100 Murphu Beki Name
#> 5 941 Jool Susan id
#> 6 469 Sali John
#> 7 990 susai Alison id, Surname, Name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.