gpt4 book ai didi

r - 在R中将字符串拆分为不同长度的子字符串

转载 作者:行者123 更新时间:2023-12-01 08:54:29 26 4
gpt4 key购买 nike

我读过类似的主题,但我的子字符串有不同的长度(每个 9、3、5 个字符),因此没有找到任何答案。

我需要将 17 个字符的长字符串分成三个子字符串,其中第一个长度为 9,下一个长度为 3,最后一个长度为 5 个字符。

例子:

 N12345671004UN005
N34567892902UN002

我想把字符串分成三列:

第 9 列 char.length

"N12345671"      
"N34567892"

第二列 3 char.length

"004"          
"902"

第三列 5 字符长度

"UN005"  
"UN002"

最佳答案

您可以尝试 read.fwf 并指定 widths

ff <- tempfile()
cat(file=ff, instr, sep='\n')
read.fwf(ff, widths=c(9,3,5), colClasses=rep('character', 3))
# V1 V2 V3
#1 N12345671 004 UN005
#2 N34567892 902 UN002

或者使用 tidyr/dplyr

library(dplyr)
library(tidyr)
as.data.frame(instr) %>%
extract(instr, into=paste0('V', 1:3), '(.{9})(.{3})(.{5})')
# V1 V2 V3
#1 N12345671 004 UN005
#2 N34567892 902 UN002

subread.table

的组合
read.table(text=sub('(.{9})(.{3})(.{5})', '\\1 \\2 \\3', instr),
colClasses=rep('character', 3))
# V1 V2 V3
#1 N12345671 004 UN005
#2 N34567892 902 UN002

数据

instr = c("N12345671004UN005", "N34567892902UN002")

关于r - 在R中将字符串拆分为不同长度的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30807081/

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