我在文件中有一个单词列表。例如,它们是NUT,CHANNEL,DIA,CARBON,STEEL,集成,包装,解决方案
现在我有一句话说NUTCHANNELDIA 16U NCCARBONSTEEL。现在,我需要像下面这样拆分此输出
a= NUTCHANNELDIA 16U NCCARBONSTEEL, integratedpackagingsolutions
a= split words(NUTCHANNELDIA 16U NCCARBONSTEEL,
integratedpackagingsolutions)
a= NUT CHANNEL DIA 16U NC CARBON STEEL
有什么方法
答案 0 :(得分:3)
这是使用strsplit
的基本R选项。我们可以尝试按以下模式进行分割:
(?<=NUT|CHANNEL|DIA|CARBON|STEEL)|(?<=.)(?=NUT|CHANNEL|DIA|CARBON|STEEL)
如果在字符串中的任何点之前或之后的内容是您的关键字之一,则将拆分。请注意,由于(?<=.)
中正向超前行为的行为,strsplit
项是必需的。
terms <- c("NUT", "CHANNEL", "DIA", "CARBON", "STEEL")
regex <- paste(terms, collapse="|")
a <- "NUTCHANNELDIA 16U NCCARBONSTEEL"
strsplit(a, paste0("(?<=", regex, ")|(?<=.)(?=", regex, ")"), perl=TRUE)
[[1]]
[1] "NUT" "CHANNEL" "DIA" " 16U NC" "CARBON" "STEEL"
16U NC
术语有一些前导空格,我没有尝试删除。如果您对此感到担心,则可以在使用每个术语时删去空白,或者我们可以尝试修改模式来做到这一点。
答案 1 :(得分:0)
这是一种非常简单的方法,可能对您有用:
word.list <- c("NUT", "CHANNEL", "DIA", "CARBON", "STEEL")
a <- "NUTCHANNELDIA 16U NCCARBONSTEEL"
for (word in word.list) {
a <- gsub(word, paste0(word, " "), a)
}
print(a)
[1] "NUT CHANNEL DIA 16U NCCARBON STEEL "
对于我来说还不清楚,是您只是想让字符串更具可读性,还是希望它实际上分成一个向量。无论如何,上面的内容应该很容易修改。