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

在R语言中创建新列提取行首6字母单词的方法咨询

在R中提取行首6个字母创建新列的方法

你用separate函数没成功是因为它是按分隔符拆分列的工具,而你的需求是固定位置截取字符,下面几个方法更适配:

方法1:基础R原生函数substr()

直接指定截取的起始和结束位置,行首就是从第1位到第6位:

# 假设你的数据框是df,原列名为text_col,新列名为first6
df$first6 <- substr(df$text_col, start = 1, stop = 6)

注:如果原字符串长度不足6位,会返回全部现有字符,不会补空位。

方法2:tidyverse生态的str_sub()

如果习惯用tidyverse的语法,用stringr包的str_sub()更灵活,还能配合管道操作:

library(dplyr)
library(stringr)

# 用mutate创建新列
df <- df %>%
  mutate(first6 = str_sub(text_col, 1, 6))

方法3:正则表达式提取(严格匹配字母)

如果需要确保只提取行首的6个字母(排除数字、符号等非字母内容),可以用正则:

基础R版本

df$first6 <- sub("^([A-Za-z]{6}).*", "\\1", df$text_col)

stringr版本

df$first6 <- str_extract(df$text_col, "^[A-Za-z]{6}")

注:这个版本下,如果行首不足6个字母,会返回NA,适合有严格格式要求的场景。

内容的提问来源于stack exchange,提问作者Martyna K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:45:30