R 将 50 位数字分解为 n 个数字,每个数字的长度都小于 50

  • 本文关键字:数字 小于 分解 r counting
  • 更新时间 :
  • 英文 :


我有一个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"

相关内容

最新更新