You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中不使用strsplit,仅用基础函数能否访问字符串字符?

不用strsplit访问R字符串单个字符的方法

假设我们有字符串:

x <- "hello world"

这里提供几种不依赖strsplit()的实现方式:

  • 方法一:用substr循环提取
    利用substr()可以提取指定位置字符的特性,结合循环遍历每个位置:
# 获取字符串长度
len <- nchar(x)
# 逐个提取每个位置的字符
char_vec <- sapply(1:len, function(pos) substr(x, pos, pos))

执行后char_vec就是包含每个单个字符的向量。

  • 方法二:通过编码转换拆分
    先把字符串转成UTF-8整数编码,再转回字符,这种方法效率很高:
# 转成整数编码,再转回单个字符
char_vec <- intToUtf8(utf8ToInt(x), multiple = TRUE)

utf8ToInt(x)会把每个字符转成对应的整数,intToUtf8(..., multiple = TRUE)则会把每个整数转回单独的字符。

  • 方法三:使用stringi包的stri_sub(需额外安装包)
    如果可以使用第三方包,stringi的stri_sub()支持批量提取多个位置的字符:
# 先安装包(首次使用)
# install.packages("stringi")
library(stringi)
char_vec <- stri_sub(x, 1:nchar(x), 1:nchar(x))

内容的提问来源于stack exchange,提问作者user321627

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:45:11