Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于R中字符串的前三个字删除重复行_R_String_Text - Fatal编程技术网

如何基于R中字符串的前三个字删除重复行

如何基于R中字符串的前三个字删除重复行,r,string,text,R,String,Text,我有一个问题还没有找到答案 假设我有以下数据帧。数据框包含以下3个观察结果 data.frame (id = 1:3, sentence = c("Hi my name is John", "Hi my name is Jack", "Hi my name is Drew") ) 我想去掉下面的两个观察结果,只留下上面有John的那一个。如果每个字符串中的最后一个单词不同,则unique()解决方

我有一个问题还没有找到答案

假设我有以下数据帧。数据框包含以下3个观察结果

data.frame (id  = 1:3,
                  sentence = c("Hi my name is John", "Hi my name is Jack", "Hi my name is Drew")
)
我想去掉下面的两个观察结果,只留下上面有John的那一个。如果每个字符串中的最后一个单词不同,则unique()解决方案不起作用。我认为应该有一种方法来检查每个字符串中的前三个(或四个)单词是否相同。如果它们是相同的,那么它将删除除顶部观察之外的其他观察结果。我将感谢任何帮助

基于三个词:

gsub(“^(\\S+\\S+\\S+\\S+\\S+.*”,“\\1”,dat$语句)
#[1]“嗨,我的名字”“嗨,我的名字”“嗨,我的名字”
dat[!重复(gsub(“^(\\S+\\S+\\S+\\S+\\S+.*”,“\\1”,dat$语句)),]
#身份证判决
#嗨,我叫约翰

您需要更精确地定义“相似”观察在这里的实际含义。@TimBiegeleisen将“相似”一词改为“相同”。