如何在R语言中按下划线拆分多分隔符字符串并转为可索引向量?
R语言字符串拆分后按索引访问的解决方案
方法1:直接提取列表内的向量
strsplit返回的是长度为1的列表,只需用[[1]]取出内部的字符向量,就能直接用索引访问元素:
asd <- 'sdfgd_sdfgdsfg_hgfdsfg_gdhgfh_fghf' split_result <- strsplit(asd, "_")[[1]] # 按索引访问 split_result[1] # 返回 "sdfgd" split_result[2] # 返回 "sdfgdsfg"
方法2:用unlist()转换为向量
unlist()可以将列表展开为普通字符向量,同样支持索引操作:
split_result <- unlist(strsplit(asd, "_")) split_result[3] # 返回 "hgfdsfg"
方法3:使用stringr包的str_split_fixed(固定元素数量场景)
如果提前知道拆分后的元素总数,可借助stringr包的str_split_fixed直接生成矩阵,通过列索引访问:
library(stringr) # n参数指定拆分后的元素总数 split_result <- str_split_fixed(asd, "_", n = 5) split_result[,1] # 第一列对应第一个拆分元素 split_result[,2] # 第二列对应第二个拆分元素
补充:单下划线字符串的简化处理
针对你最初处理dfdfd_666这类单下划线字符串的场景,用strsplit也能更简洁地实现需求:
single_str <- 'dfdfd_666' single_split <- strsplit(single_str, "_")[[1]] single_split[1] # 获取 "dfdfd" single_split[2] # 获取 "666"
内容的提问来源于stack exchange,提问作者Rakshu
相关产品推荐
相关产品推荐

