带“.”的最终元素没有正确写入文件

Final element with '.' does not write correctly to file

我有一个很长的十进制值向量:

spect <- c(0.0005862, 0.0005983, 0.0006225, 0.0006637, 0.0006622, 0.0006197, 0.0005990, 0.0005983, 0.0006247, 0.0006707, 0.0006641)

使用 gsub,我尝试每次取 5 个元素并写入文件中的一行(感谢用户 akrun)

cat(gsub("\s*(([0-9.]+\s+){1,4}\d+)", "\1\n",
         paste(unlist(spect), collapse="      ")), '\n', file = "file.txt")

但是输出看起来像这样:

0.0005862      0.0005983      0.0006225      0.0006637      0
.0006622      0.0006197      0.000599      0.0005983      0
.0006247      0.0006707      0
.0006641 

是什么原因导致最后一个元素没有写正确,在'.'之前另起一行?

结果应如下所示:

0.0005862      0.0005983      0.0006225      0.0006637      0.0006622 
0.0006197      0.000599      0.0005983      0.0006247      0.0006707 
0.0006641 

如果您有矢量输入,则不需要正则表达式来执行此操作。尝试:

cat(paste0(tapply(spect, ceiling(seq_along(spect)/5), 
    paste0, collapse = '     '), collapse = '\n'), file = "file.txt")