比较两个数据框列并将它们添加到数据框

Compare two dataframe colums and add them to the dataframe

我有一个包含两列的数据框。我想向 df 添加一个新列,其中所有值都在里面,数据帧是否与第一个列匹配。

我试过了:

df<-data.frame(A=c("1","test","2","3",NA,"Test", NA),B=c("1","No Match","No Match","3",NA,"Test", "No Match"))

df[df$A == df$B ]

但是,我得到:

Error in Ops.factor(df$A, df$B) : level sets of factors are different    

对我做错了什么有什么建议吗?

先处理 NA,然后添加您的专栏:

> df[is.na(df)]=""
> df$New = with(df, A==B)
> df
     A        B   New
1    1        1  TRUE
2 test No Match FALSE
3    2 No Match FALSE
4    3        3  TRUE
5                TRUE
6 Test     Test  TRUE
7      No Match FALSE

或者使用 df = df[complete.cases(df),] 从初始 data.frame 中删除 NA,然后添加该列。

如果在 A 或 B 列中有 NA 时,您确实想要 False

> transform(df, New=ifelse(is.na(A)|is.na(B), FALSE, df$A==df$B))
     A        B   New
1    1        1  TRUE
2 test No Match FALSE
3    2 No Match FALSE
4    3        3  TRUE
5 <NA>     <NA> FALSE
6 Test     Test  TRUE
7 <NA> No Match FALSE