我有一个50位数字。
我想编写一个函数,将这个数字分解为 50、25 或 5 位不同的数字(50/k == integer
的任何数字k
(。
我的尝试:
x <- 37107287533902102798797998220837590246510135740250
print(log10(x))
[1] 49.56946
这无助于我分解数字,因为
length(x) == length(log10(x)) == 1
有这样的函数吗?或者有什么方法可以将向量分解为其数字/字符?
谢谢。
x <- 37107287533902102798797998220837590246510135740250
options(scipen=999)
f <- function(k, x) {
sapply(seq(1, nchar(paste(x)), by = k), function(y)
substr(paste(x), y, y + k - 1))
}
f(5, x)
# [1] "37107" "28753" "39021" "04311" "02574" "03046" "89820" "49532" "36471" "80800"
f(10, x)
# [1] "3710728753" "3902104311" "0257403046" "8982049532" "3647180800"
f(25, x)
# [1] "3710728753390210431102574" "0304689820495323647180800"