我有一个字符向量如下
<spec>
<h5><hdtitle>Tighten</hdtitle></h5>
Tighten the bolts to 10N m
(89lbin).
</spec>
我想根据连续行中发生Tighten的情况删除第2行<h5><hdtitle>Tighten</hdtitle></h5>
。
必需的输出
<spec>
Tighten the bolts to 10N m
(89lbin).
</spec>
答案 0 :(得分:2)
由于您的示例看起来更像是HTML文档的一部分而不是字符向量,因此我建议您尝试使用XML包。它的removeNodes()
函数使这项任务变得非常简单。
x <- '<spec>
<h5><hdtitle>Tighten</hdtitle></h5>
Tighten the bolts to 10N m
(89lbin).
</spec>'
library(XML)
doc <- htmlParse(x)
removeNodes(list(doc["//h5"][[1]]))
# NULL
然后我们
doc["//spec"][[1]]
# <spec>
# Tighten the bolts to 10N m
# (89lbin).
# </spec>
你可以根据是否&#34;收紧&#34;发生在两行上,如
doc <- htmlParse(x)
s <- stringi::stri_count_fixed(xmlValue(doc["//spec"][[1]]), "Tighten")
if(s > 1) {
removeNodes(list(doc["//h5"][[1]]))
}
doc["//spec"][[1]]
# <spec>
# Tighten the bolts to 10N m
# (89lbin).
# </spec>