首页 > 解决方案 > R将NA值转换为字符以进行字符串比较

问题描述

我有一个包含 2 列字符串的数据框。目标是查看其中有多少是相同的,包括NA值。如果两列都给出NA,则应将其视为相同。

class(df$column_1) # it shows characters
length(which(df$column_1 == df$column_2)) # the result exclude the NA rows

标签: rstringna

解决方案


另一种方法是逐项使用identical()(它有一个很好的属性identical(NA, NA) = TRUE)循环:

虚拟数据:

a=c("a",NA,"b")
b=c(NA,NA,"d")
df = data.frame(a, b, stringsAsFactors=FALSE)

代码:

count = 0
for(i in 1:nrow(df)){
  count = count + identical(df[i,1],df[i,2])}

输出:

>count
>1

推荐阅读