簡體   English   中英

如何使用 R 中的正則表達式對 dataframe 中的字符串進行索引和 gsub

[英]How to index and gsub a string within a dataframe using regex in R

我正在研究一個文本清理管道,我希望將 dataframe 中的目標詞列表和相應的替換詞應用到給定的字符串(例如,山羊) goats <- c("goats like apples applesauce. goats like bananas bananasplits. goats like cheese cheesecake.")

我正在使用 for 循環來運行目標列表和 gsub,並在指定的文本(山羊)中使用它們的相應替換。 我希望替換只捕獲精確的字符串匹配(例如,banana 但不是bananasplit)。 這是循環:

goatclean <- goats
for (i in seq_along(swap$target)) {
    goatclean <- gsub(swap$target[i], swap$replace[i], goatclean)
}
print(goatclean)

這個循環的 output 是:“山羊喜歡瑪麗瑪麗亞斯。山羊喜歡琳達林達普利特。山羊喜歡簡簡蛋糕。”

當它只是一個使用正則表達式的孤立詞時,我無法從 dataframe 中找出 gsub 'apples' 的方法——當我將 \s+ 添加到時出現錯誤:

gsub(\\s+(swap$target[i])\\s+, swap$replace[i], goatclean)

關於如何獲得 output 的任何建議如下:“山羊喜歡瑪麗蘋果醬。山羊喜歡琳達香蕉皮。山羊喜歡簡芝士蛋糕。”

感謝大家!

嘗試在模式周圍使用單詞邊界( \\b ) -

for (i in seq_along(swap$target)) {
  goatclean <- gsub(paste0('\\b', swap$target[i], '\\b'), swap$replace[i], goatclean)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM