gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 12:10:58 24 4
gpt4 key购买 nike

我有一个名为“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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com