R输出tsv没有科学记数法

时间:2017-04-24 00:36:46

标签: r format

我有这个变量:

> output
[[1]]
[1] 1.394082e+19 3.481687e+18 1.829848e+19 1.414608e+19 1.694183e+19 1.394082e+19

[[2]]
[1] 1.569580e+19 1.569580e+19 1.204701e+19 1.600159e+19 6.915915e+18 4.672586e+18 1.095256e+19 1.395906e+19 2.199774e+18

[[3]]
[1] 1.602384e+19 2.610937e+18 1.750534e+19 3.749841e+17 1.602384e+19 1.921356e+18 1.490877e+19 1.858905e+17 9.592238e+18

[[4]]
[1] 1.488400e+19 8.239013e+18 1.397958e+19 1.488400e+19 5.659786e+17 1.235961e+18 1.802728e+19

[[5]]
[1] 1.038415e+19 5.060804e+18 3.892644e+18 1.038415e+19

我想在没有科学记数法的情况下打印到tsv文件。像

这样的东西
1.56958e+19     1.56958e+19     1.204701e+19    1.600159e+19    6.915915e+18
4.672586e+18    1.095256e+19    1.395906e+19    2.199774e+18
1.602384e+19    2.610937e+18    1.750534e+19    3.749841e+17    1.602384e+19
1.921356e+18    1.490877e+19    1.858905e+17    9.592238e+18
1.4884e+19      8.239013e+18    1.397958e+19    1.4884e+19      5.659786e+17

但没有科学记数法。如果我试试,

x <- c(1:length(output)))
for ( val in x ) {
  write(format(output[[val]],scientific = FALSE),file="test2.txt", append=TRUE,sep="\t")
}

我为每个号码添加了新行:

13940817034235316224
 3481686930273376256
18298477684861163520
14146076755830216704
16941832990896044032
13940817034235316224
15695800775901642752
15695800775901642752

我尝试了一些变化而且对R的经验很少让我相信我错过了一些简单的东西?

1 个答案:

答案 0 :(得分:1)

您需要明确设置ncolumns参数。根据{{​​1}},?write的默认值为:

  

ncolumns = if(is.character(x))1 else 5

由于ncolumns将数字向量转换为字符向量,因此每行总是有一列;以编程方式,您可以将format设置为等于每个子列表的向量长度:

ncolumns