gpt4 book ai didi

string - R:分割数字字符串

转载 作者:行者123 更新时间:2023-12-01 10:05:51 25 4
gpt4 key购买 nike

我正在尝试拆分 40 位数字字符串(即将 123456789123456789123456789 拆分为 1 2 3 4 等)

不幸的是 strsplit 不起作用,因为它需要字符,并且使用 as.character 转换字符串不起作用,因为它很长,R 会自动切断长数字的小数位(最多 22 位小数)。因此,我最终将 "1.2345e+35" 作为字符串,而不是完整的数字。

是否有 strsplit 的数字变体,或解决小数点截止问题的方法?我似乎无法在 stackoverflow 上找到答案,但如果之前已经回答过,我深表歉意。提前致谢!

最佳答案

如果 R 正在计算数字,我不知道解决方案。如果数字在数据文件中,我认为下面的代码可能有效。但是,如果数字在数据文件中,则可能有更简单的解决方案。

a1 <- read.table("c:/users/Mark W Miller/simple R programs/long_number.txt", colClasses = 'character')

# a1 <- c('1234567891234567891234567891234567891234') ;

a1 <- as.character(a1) ;
a2 <- strsplit(a1, "") ;
a3 <- unlist(a2) ;
a4 <- as.vector(as.numeric(a3)) ;
a4
# [1] 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4

编辑

我意识到我可能不明白这个问题,我的回答可能很愚蠢。尽管如此,如果您有一个由非常长的数字组成的完整数据集,您可以使用下面的代码将它们全部拆分。请注意,文件“three_long_numbers.txt”中没有引号,数据以数字开头:
a1 <- read.table("c:/users/Mark W Miller/simple R programs/three_long_numbers.txt", colClasses = 'character')
a1

# V1
# [1,] "1234567891234567891234567891234567891234"
# [2,] "1888678912345678912345678912345678912388"
# [3,] "1234999891234567891234567891234567891239"

# a1 <- matrix(c(
# "1234567891234567891234567891234567891234",
# "1888678912345678912345678912345678912388",
# "1234999891234567891234567891234567891239"), nrow=3, byrow=T)

a1 <- as.matrix(a1) ;
a2 <- strsplit(a1, "") ;
a3 <- unlist(a2) ;
a3 <- as.numeric(a3) ;
a4 <- matrix(a3, nrow=dim(a1)[1], byrow=T)
a4

关于string - R:分割数字字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10871525/

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