使用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