gpt4 book ai didi

r - 将字符串拆分为多个固定宽度的列

转载 作者:行者123 更新时间:2023-12-01 21:57:58 25 4
gpt4 key购买 nike

我正在尝试使用 str_split 将以下观察结果拆分为特定格式。

"00010943900008" "00010946803119" "00010946803219" "00010946803219" "00010946803219" "00010948700007"

我正在尝试将其分成不同的列。

因此第一个观察结果将如下所示:

Column x = 00

Column y = 01

Column z = 09439

Column w = 00008

其中 x 列始终是观察中的前 2 个数字,y 列将是接下来的 2 个数字,z 列将是接下来的 5 个数字,w 列将是最后 5 个数字

数据

string <- c("00010943900008", "00010946803119", "00010946803219", "00010946803219", 
"00010946803219", "00010948700007", "00010948700007", "00010948700007",
"00010948700007", "00010948700007", "00010948700007", "00010948700007",
"00010948700007", "00010948700007", "00010948700007", "00010948700007",
"00010948700007", "00010948700007", "00010948700007", "00010948700007",
"00010948700007", "00010948700007", "00010948700007", "00010948700007",
"00010948700007", "00010948700007", "00010948700007", "00010948700007",
"00010948700007", "00010948700007", "00010948700007", "00010948700007",
"00010948700007", "00010948700007", "00010948700007", "00010948700007",
"00010948700007", "00010948700007", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016",
"00011820000016", "00011820000016", "00011820000016", "00011820000016"
)

最佳答案

您可以使用 \n 作为分隔符连接数据或将其写入文件,然后使用 readr::read_fwfread.fwf(仅从文件)将其导入为固定宽度格式。这是不写入磁盘的 readr::read_fwf 版本:

library(readr)
result = read_fwf(paste(string, collapse = "\n"),
col_positions = fwf_widths(c(2, 2, 5, 5), col_names = c("x", "y", "z", "w")))
head(result)
# # A tibble: 6 x 4
# x y z w
# <chr> <chr> <chr> <chr>
# 1 00 01 09439 00008
# 2 00 01 09468 03119
# 3 00 01 09468 03219
# 4 00 01 09468 03219
# 5 00 01 09468 03219
# 6 00 01 09487 00007

关于r - 将字符串拆分为多个固定宽度的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52525364/

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