【发布时间】:2017-09-20 00:02:09
【问题描述】:
我有两列。两者都是字符数据类型。 一列有字符串,另一列有带引号的字符串。 我想比较两列并找到否。整个数据框中的不同名称。
string f.string.name
john NA
bravo NA
NA "john"
NA "hulk"
这里的计数应该是 2,因为 john 很常见。
不知何故,我无法从第二列中删除引号。不知道为什么。
谢谢
【问题讨论】:
标签: r
我有两列。两者都是字符数据类型。 一列有字符串,另一列有带引号的字符串。 我想比较两列并找到否。整个数据框中的不同名称。
string f.string.name
john NA
bravo NA
NA "john"
NA "hulk"
这里的计数应该是 2,因为 john 很常见。
不知何故,我无法从第二列中删除引号。不知道为什么。
谢谢
【问题讨论】:
标签: r
我看到的主要问题是 NA 值。
首先,让我们去掉你提到的引号。
dat$f.string.name <- gsub('["]', '', dat$f.string.name)
现在,计算不同值的数量。
i1 <- complete.cases(dat$string)
i2 <- complete.cases(dat$f.string.name)
sum(dat$string[i1] %in% dat$f.string.name[i2]) + sum(dat$f.string.name[i2] %in% dat$string[i1])
数据
dat <-
structure(list(string = c("john", "bravo", NA, NA), f.string.name = c(NA,
NA, "\"john\"", "\"hulk\"")), .Names = c("string", "f.string.name"
), class = "data.frame", row.names = c(NA, -4L))
【讨论】:
library(stringr)
table(str_replace_all(unlist(df), '["]', ''))
# bravo hulk john
# 1 1 2
【讨论】: