如果這是一個簡單的問題,我很抱歉。我試圖用R中的MixSim包中的點來充當舊的Fortran程序中的採樣點,因爲我喜歡MixSim更好地創建採樣點的方式,但我使用Fortran程序來模擬植物數據beta多樣性,阿爾法多樣性等如何格式化輸出與write.table
我產生我在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
但我需要我的輸出與Fo完全一樣rtran計劃接受它。
***** 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點。
你可以得到相當接近與'DF < - signif(DF,4); write.table(df,'df.txt',sep ='\ t',row.names = FALSE,quote = FALSE)',但沒有標題,並且由於某種原因它似乎刪除了尾隨零。當然有人寫過'read.fortran'這一行的特定於Fortran的寫函數,但我不確定它是什麼。 – alistaire
我認爲你可以對整個data.frame應用'round'。 'write.table'可以有'sep =「\ t」'說它應該「看起來像這樣」並不是那麼有用。這些項目是什麼「50 3 1 0.0000 \ n 50」,...並且是否需要在代碼格式中有第一行?儘可能具體。 –
@ 42,是的,所有這些都需要在那裏。 50是樣本的數量,3是組的數量,1應該是維度的數量(在這個例子中),0.000是隨機生成的數字已經消失的佔位符。 'write.table'似乎會截斷我的小數位,並且不會根據需要將每個元素設置爲彼此相隔4個空格。 – NDD