我试图分别比较来自不同csv文件的两列。
但我不知道如何做到这一点,因为这些数据帧有不同的行数。另外,我想比较那些匹配另一个变量。
例如,
>dat1
ID X Y CODE
1111 1 4 A
1111 2 3 A
1111 2 2 A
1112 2 2 A
1112 1 3 A
1112 2 5 A
1121 1 3 B
1121 2 1 B
1121 3 2 B
和
>dat2
ID as df CODE
1111 g a A
1112 d d A
1121 g b B
假设我有这两个数据集,我想将CODE
列dat1
与dat2
进行比较,看它们是否与ID
具有相同的值。
我的期望如下
>dat2
ID as df CODE Error
1111 g a A 0
1112 d d A 0
1121 g b B 0
如果发生任何不匹配,dat2$Error
被编码1.这是我的期望,如果我知道哪个值不匹配会更好。
答案 0 :(得分:0)
我认为这是你正在尝试做的事情:
library(dplyr)
dat1unique <- dat1 %>% select(ID, CODE) %>% distinct() %>%
rename(CODE1 = CODE)
dat2 <- dat2 %>% rename(CODE2 = CODE)
dat3 <- right_join(dat1unique, dat2, by = "ID") %>%
mutate(Error = ifelse(CODE1 == CODE2, 0, 1))
> dat3
ID CODE1 as df CODE2 Error
1 1111 A g a A 0
2 1112 A d d A 0
3 1121 B g b B 0
答案 1 :(得分:0)
if_else((!paste(dat2 $ ID,dat2 $ CODE)%in%paste(dat1 $ ID,dat1 $ CODE),0,1)