使用dplyr连接不正确的数据
所以我有一个如下的查找表:使用dplyr连接不正确的数据,r,dplyr,tidyverse,R,Dplyr,Tidyverse,所以我有一个如下的查找表: ID Descrip 11 Apples 12 Bananas 13 Grapes 14 Cherries col 11 13 11 12 12 Apples Cherries Bananas Ba_nanas 14 col Descrip 11 Apples 13 Grapes 11 Apples 12 Bananas 12 Bananas 11 Apples 14 Cherries 12 B
ID Descrip
11 Apples
12 Bananas
13 Grapes
14 Cherries
col
11
13
11
12
12
Apples
Cherries
Bananas
Ba_nanas
14
col Descrip
11 Apples
13 Grapes
11 Apples
12 Bananas
12 Bananas
11 Apples
14 Cherries
12 Bananas
NA NA
14 Cherries
但是,我的数据如下所示:
ID Descrip
11 Apples
12 Bananas
13 Grapes
14 Cherries
col
11
13
11
12
12
Apples
Cherries
Bananas
Ba_nanas
14
col Descrip
11 Apples
13 Grapes
11 Apples
12 Bananas
12 Bananas
11 Apples
14 Cherries
12 Bananas
NA NA
14 Cherries
因此,我希望将col
与查找匹配,并获得如下数据:
ID Descrip
11 Apples
12 Bananas
13 Grapes
14 Cherries
col
11
13
11
12
12
Apples
Cherries
Bananas
Ba_nanas
14
col Descrip
11 Apples
13 Grapes
11 Apples
12 Bananas
12 Bananas
11 Apples
14 Cherries
12 Bananas
NA NA
14 Cherries
所以要注意的是,如果其中任何一个都不匹配,那么这两个都应该为null,比如Ba_nanas
我尝试了以下方法,但只在一个方向起作用
df <- df %>%
mutate(col = ifelse(nchar(col)>2, NA ,col))
left_join(lookup, by =c("col" = "ID"))
df%
突变(col=ifelse(nchar(col)>2,NA,col))
左联合(查找,按=c(“列”=“ID”))
如果可能的话,我真的很想坚持在
nchar>2时进行替换。试试这种方法。您可以将此base R
方法设置为进行双重匹配,然后根据结果conditionate使用ifelse()
提取所需的值。下面是代码(使用共享的数据进行第一次测试):
#代码格式变量
df$col1试试这种方法。您可以将此base R
方法设置为进行双重匹配,然后根据结果conditionate使用ifelse()
提取所需的值。下面是代码(使用共享的数据进行第一次测试):
#代码格式变量
df$col1