我有一个看起来像这样的数据框:
'data.frame': 81 obs. of 2 variables:
$ start: int 232 10697 10965 12279 15647 16897 17033 17612 17719 17983 ...
$ end : int 243 10702 10970 12284 15652 16902 17038 17617 17724 17988 ...
我有一个字符串,其中包含我想在这些开始/结束偏移对处删除的内容。因此,无论字节偏移量 232 和 234 之间是什么,我都想“擦除它”并折叠空间。我发现我想向后处理字符串,这样如果我在最后修改它,靠近开头的偏移量仍然有效。我到目前为止的代码是:
for (i in nrow(cutpoints):1) {
row = cutpoints[i,]
substr(sc, row$start, row$end) <- " "
}
但是当我之后打印出 sc 时,它只删除了我想要删除的每个子字符串的第一个字符。有谁知道我做错了什么?此外,这可以向量化吗?
更新- 我尝试使用 stringr 的 str_sub:
> hw <- "Hadley Wickham"
> cuts <- data.frame(start=c(1,8), end=c(6,14))
> str_sub(hw, rev(cuts$start), rev(cuts$end)) <- " "
> hw
[1] "Hadley " " Wickham"
所以,很明显我不明白我在用 R 中的字符串处理做什么。