R语言如何高效将多个字符串批量插入至目标文本指定位置
R语言向量化实现字符串指定位置多子串插入
推荐使用stringi包原生向量化函数stri_sub_replace_all实现,底层为C语言实现,无R层循环开销,处理大规模语料效率远高于自行实现的循环方案。
实现代码
library(stringi) # 原始数据 text <- "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." idx_list <- c(5,16,30,50) word_list <- c("AAA", "BBB", "CCC", "DDD") # 先按位置降序排序,避免靠前位置插入后导致后续位置偏移 sort_order <- order(-idx_list) idx_sorted <- idx_list[sort_order] word_sorted <- word_list[sort_order] # 向量化插入:替换指定位置长度为0的子串,等价于插入内容 result <- stri_sub_replace_all(text, from = idx_sorted, length = 0, value = word_sorted)
批量处理多文本的扩展方案
如果需要处理大规模语料(字符串向量,每个元素对应一条文本),直接将text替换为你的语料向量,from和value传入和语料长度一致的列表,每个列表元素对应单条文本的插入位置和插入词列表即可,无需额外套循环。
内容的提问来源于stack exchange,提问作者volfi
相关产品推荐
相关产品推荐

