逐行比较两列而不使用for循环

时间:2018-06-14 18:47:12

标签: r

我的数据:

x1    x2      result
abc   abc      1
abc   def      0
def   def      1

比较时的两列给出1和0的结果,如果匹配则为1,否则为0。 我知道我可以使用for循环,但是它有一个函数吗?

我尝试使用比较,但我认为它不再存在。

修改:在线搜索比较包,并尝试使用比较功能,但它没有用。

3 个答案:

答案 0 :(得分:0)

你可以写:

df$result <- ifelse(df$x1 == df$x2, 1, 0)

如果两列x1和x2相等,则读取结果为1,如果它们不相等,则结果为0.

答案 1 :(得分:0)

使用dplyr:

df <- df %>% mutate(result=ifelse(x1==x2,1,0))

类似于前一个答案

答案 2 :(得分:0)

您还可以使用==和隐式转换(布尔值 - &gt;数字):

df$result <- (df$x1==df$x2)*1
# or skip the parentheses and *1 if TRUE/FALSE values are OK
相关问题