簡體   English   中英

如何使用write.table格式化輸出

[英]How to format output with write.table

抱歉,這是一個簡單的問題。 我試圖使用R中的MixSim包中的點作為舊的Fortran程序中的采樣點,因為我喜歡MixSim更好地創建采樣點的方式,但是我正在使用Fortran程序來模擬跨多個級別的植被數據。 Beta多樣性,Alpha多樣性等。

我通過以下方式在MixSim中生成數據:

d=MixSim(BarOmega=0.000,MaxOmega=0.000,K=4,p=3,ecc=0.99,int=c(10,90),PiLow=0.1)
m=simdataset(n=10,Pi=d$Pi,Mu=d$Mu,S=d$S)

如果我確實使用write.table,這就是我得到的

write.table(m$X,file="example.txt",quote=F,row.names=F)
V1 V2 V3
87.540626647788 62.8444539443256 17.0026406651813
83.9939847940881 65.0069747775257 18.8676229149976
84.4477456535804 63.6892673685408 18.6384437248469
84.7684968694547 65.4610993744652 17.6252989584773
13.4600970937604 16.9988156469822 49.6810813619893
23.9952555783055 18.6598302958281 48.4204641715953
17.0523647853253 11.518037157788 43.0417655739052
57.5107395863171 40.4872578216636 24.938188234695
11.8320140526743 52.9077915021041 34.5723480775864
12.8754032313702 53.1795899126135 34.1309377040482

但是我需要我的輸出看起來完全像這樣,以便Fortran程序接受它。

***** SAMPLING PATTERN FILE

 50   3   1          0.0000
50
   87.54    62.84    17.00
   83.99    65.00    18.86
   84.44    63.68    18.63
   84.76    65.46    17.62
   13.46    16.99    49.68
   23.99    18.65    48.42
   17.05    11.51    43.04
   57.51    40.48    24.93
   11.83    52.90    34.57
   12.87    53.17    34.13

我應該指出,我確切地知道如何通過以下方式對r進行舍入:

m=round(m$X,digits=2)

我最好的選擇是簡單地使用write.table然后格式化“手工”。 然后,將在我用Fortran編寫的循環中創建我的大多數模型。 我只需要在MixSim中生成幾十個模型,然后格式化它們即可。 所有型號的得分將大大超過10分。

(使用write.table嘗試了多種操作,但是當尾隨數字為nn.00時,總是會不希望地將十進制值截斷。)

使用cat作為文件序言, write.fwf從pkg :: gdata中write.fwf

cat(top, file='out.txt')
install.packages('gdata')
gdata::write.fwf(signif(dat,4), file = "out.txt", append = TRUE, quote = FALSE, sep = "\t", 
                   colnames = FALSE)

-------result----------
***** SAMPLING PATTERN FILE

 50   3   1          0.0000
50
87.54   62.84   17.00
83.99   65.01   18.87
84.45   63.69   18.64
84.77   65.46   17.63
13.46   17.00   49.68
24.00   18.66   48.42
17.05   11.52   43.04
57.51   40.49   24.94
11.83   52.91   34.57
12.88   53.18   34.13

如果需要在LHS上填充,則可以使用width=7或8。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM