R语言字符串拆分后消除逗号/反斜杠拼接问题求助
解决R语言字符串拆分后无冗余字符拼接的问题
问题核心
str_split(来自stringr包)默认返回列表对象,而非普通字符向量,直接用toString()或paste()会把列表的结构符号(反斜杠、括号等)带入结果,这就是你遇到异常的根本原因。
可行解决方案
方法1:用str_split_1直接获取字符向量(推荐)
若你的stringr包版本在1.4.0及以上,直接替换str_split为str_split_1,它会直接返回拆分后的字符向量,无需处理列表结构:
library(stringr) s <- str_split_1(sentences[1], " ") paste(s, collapse = " ")
输出结果为无冗余字符的完整句子:"The birch canoe slid on the smooth planks."
方法2:手动提取列表内的向量
如果stringr版本较低没有str_split_1,通过列表索引[[1]]提取拆分后的向量,再用paste的collapse参数拼接:
library(stringr) s <- str_split(sentences[1], " ") paste(s[[1]], collapse = " ")
同样能得到符合要求的拼接结果。
补充:关于str_split_fixed的修正用法
str_split_fixed返回的是矩阵,直接拼接会保留逗号,需先转为向量并过滤空值(若存在)再拼接:
s <- str_split_fixed(sentences[1], " ", n = Inf) paste(s[s != ""], collapse = " ")
内容的提问来源于stack exchange,提问作者tensai
相关产品推荐
相关产品推荐

