R匹配字符串到每列每行的字符串

时间:2018-03-30 18:07:33

标签: r

对于文本数据集,我需要为每行返回True或False,如下所示:

 df<-data.frame(c("blue","green","red"),c("red","green","blue"))
 names(df)<-c("df.x","df.y")
df

   df.x  df.y
1  blue   red
2 green green
3   red  blue

结果需要为True或False并添加到data.frame中。最简单的方法是什么?

由于

3 个答案:

答案 0 :(得分:0)

library(plyr)
library(dplyr)
df <- df %>% mutate(df.equal = ifelse(x == y, "True", "False"))

根据您以后是否要将该数据用作布尔值,您还可以使用...

df <- df %>% mutate(df.equal = ifelse(x == y, TRUE, FALSE))

答案 1 :(得分:0)

使用基础Rwithin

df <- within(df, {
  df.z = df.x == df.y
})
df

这会产生

   df.x  df.y  df.z
1  blue   red FALSE
2 green green  TRUE
3   red  blue FALSE

答案 2 :(得分:0)

或者我们可以将do.call==

一起使用
df$df.z <-  do.call(`==`, df)
df$df.z
#[1] FALSE  TRUE FALSE