我有一个数据集,我需要比较R中两个字符串的前几个字符,考虑两个字符串:Allison,Master Hudson Trevor和Allison,Miss Helen Loraine。这两个在同一列和不同的行中,我的所有数据集都是这样的,有必要将每两个字符串比较到逗号,如果这两个是相同的,则返回yes,否则返回no。我是r的新人,提前谢谢。
一种选择是用word
提取第一个单词
library(stringr)
out <- word(str1) == word(str2)
out
#[1] TRUE
从逻辑索引可以更容易地转换为“是/否”
c("No", "Yes")[out +1]
或者base R
选项包括在,
之后删除字符串然后进行比较
sub(",.*", "", str1) == sub(",.*", "", str2)
如果这些是数据集中的两列,则可以通过提取列来完成相同的操作
out <- with(df1, word(col1) == word(col2))
如上所述完成其余的工作
str1 <- "Allison, Master Hudson Trevor"
str2 <- "Allison, Miss Helen Loraine"