r - 如何将一串不同长度的数字和字母分成R中的不同列?

标签 r string

我有一个名为“WFBS”的列,其中包含超过一百万行不同长度的字符串,如下所示:

WFBS <- c("M010203", "S01020304", "N104509")

我需要一个看起来像这样的输出:

WFBS1 <- c("M01", "S01", "N10")
WFBS2 <- c("02", "02", "45")
WFBS3 <- c("03", "03", "09")
WFBS4 <- c(NA, "04", NA)

所以我需要将每个字符串分开: 第一列:3 个字符(即字母后跟 2 位数字) 其余列:每列 2 个字符,直到我没有字符为止

我尝试使用函数 strsplit,但它说我的变量不是字符,所以我创建了一个向量 x,如下所示:

x <- as.character(WFBS)

但后来我不知道如何使用函数 strsplit 将字符串分成几列。

最佳答案

使用 base R 创建分隔符 的选项, 使用 sub,使用 read.csv 读取到创建一个 4 列数据框

read.csv(text = sub("^(...)(..)(..)(.*)", "\\1,\\2,\\3,\\4", WFBS), 
  header = FALSE, colClasses = rep("character", 4), na.strings = "",
        col.names =paste0("WFBS", 1:4), stringsAsFactors = FALSE)
#    WFBS1 WFBS2 WFBS3 WFBS4
#1   M01    02    03  <NA>
#2   S01    02    03    04
#3   N10    45    09  <NA>

关于r - 如何将一串不同长度的数字和字母分成R中的不同列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56992460/

相关文章:

sql - 根据其他行中列的值选择行

r - 将变量从逗号拆分为有序数据框

python - 我收到类型错误 : '<' not supported between instances of 'str' and 'int'

java - UTF-8 读取文件在 ide 外部时解析方式不同

Javascript 将变量视为字符串,为什么?

r - 一个图中条件 1 的线性函数和条件 2 的三次函数

r - 如果任何剩余值为 0,则将值设置为 0

r - 在 R 列表中选择随机元素?

vb.net - 在字符串中查找字符的索引?

arrays - 从字符串中逐字抓取字符