首页 > 解决方案 > R - 比较两个字符串变量并根据比较得出第三个变量

问题描述

假设您有一个如下所示的数据框:

Var1 Var2
A    A  
B    B  
A    B  
B    A 

我正在尝试创建一个变量Var31如果它们相等,Var1如果它们不相等。因此,数据框应如下所示:Var20

Var1 Var2 Var3
A    A    1
B    B    1
A    B    0
B    A    0

我正在使用以下代码:

data %<>%
  mutate_if(vars(Var1) == vars(Var2), Var3 = 1) %>% 
  mutate_if(vars(Var1) != vars(Var2), Var3 = 0)

但是,我收到以下错误:

Error in vars(Var1) == vars(Var2) : 
  comparison of these types is not implemented

那我该怎么办?

标签: r

解决方案


使用 dplyr 我会使用 case_when,当您有多个条件时它会很有帮助。

df <- data.frame(Var1 = c("A","B","A","B"),
                 Var2 = c("A","B","B","A"))

df %>%
  mutate(Var3 = case_when(Var1 == Var2 ~ 1,
                          Var1 != Var2 ~ 0))

推荐阅读