R 句子中的单词及其在词典中的近邻

R 句子中的单词及其在词典中的近邻,r,R,我有以下数据框: sent <- data.frame(words = c("just right size", "size love quality", "laptop worth price", "price amazing user", "explanation complex what", "easy set", "product best buy", "buy priceless when"), user = c(1,2,3,4,

我有以下数据框:

sent <- data.frame(words = c("just right size", "size love quality", "laptop worth price", "price amazing user",
                         "explanation complex what", "easy set", "product best buy", "buy priceless when"), user = c(1,2,3,4,5,6,7,8))
我需要删除以下句子开头的单词,它与前一句结尾的单词相同

我的意思是,我们有一个句子“恰到好处的size”和“size爱的品质”,所以我需要在第二个用户位置删除单词size。 然后句子“笔记本电脑价值price”和“price惊人用户”,所以我需要删除第四个用户位置的单词price

谁能帮助我,我会感激你的任何帮助。非常感谢。

您可以使用
sub
从下一行和当前行的“单词”列中提取“第一个”和“最后一个”单词。如果单词相同,请从下一行中删除第一个单词,或者保留它(
ifelse(…)


w1这只适用于前两句话。是否可以将您的方法扩展到数据框中的所有句子?@Martin我认为您的预期结果与我在输出中显示的结果相同。你能显示预期的输出吗。如果在不同的示例中存在异常,请在您的post@Martin你的专栏是否可能有前导/后置空格?是的,这正是我想要的。非常感谢你,阿克伦,你帮了我很多:-)马丁,没问题。很高兴帮助你。
words                          user
just right size                 1
size love quality               2
laptop worth price              3
price amazing user              4
explanation complex what        5
easy set                        6
product best buy                7
buy priceless when              8
w1 <- sub(' .*', '', sent$words[-1])
w2 <- sub('.* ', '', sent$words[-nrow(sent)])
sent$words <- as.character(sent$words)
sent$words
#[1] "just right size"          "size love quality"       
#[3] "laptop worth price"       "price amazing user"      
#[5] "explanation complex what" "easy set"                
#[7] "product best buy"         "buy priceless when"   

sent$words[-1] <- with(sent, ifelse(w1==w2, sub('\\w+ ', '',words[-1]), 
                  words[-1]))
sent$words
#[1] "just right size"          "love quality"            
#[3] "laptop worth price"       "amazing user"            
#[5] "explanation complex what" "easy set"                
#[7] "product best buy"         "priceless when"