2017-04-24 139 views
1

右輸出TSV我有這個變量:沒有科學記數法

> 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

您需要明確設置ncolumns參數。據?write,爲ncolumns默認爲:

ncolumns = IF(is.character(X))1,否則5

由於format數字載體轉換爲特徵向量,你總是有每行一列;以編程方式,您可以將ncolumns設置爲等於每個子列表的向量長度:

for(vec in output) { 
    write(format(vec, scientific=FALSE), file="test2.txt", append=TRUE, sep="\t", ncolumns=length(vec)) 
}