我剛剛遇到了R腳本的問題。該腳本旨在更改某些值並將其存儲在文本文件中(然後將其傳遞到預先存在的Fortran代碼以供進一步分析)。R:刪除存儲到文本文件中矩陣的空格
想象一下,我們有4個不同的參數,從列表中提取。我們所說的子集「參數」具有以下屬性:
- 數蘋果的
- 平均體積[立方厘米]蘋果
- 蘋果通過我的鄰居蘋果
- 百分比吃過已打開的成汁
一個設置可能是:
> parameters
num apple volume neighbor juice
1 73 98.7 7 0.03
的數據是從一個列表中提取,然後,爲了施加各種功能,轉換爲數字:
parameters <- as.numeric(parameters)
在我需要被寫在一個文本文件的值,每行一個值結束,所以我把它變成一個矩陣:通過調用
parameters <- as.matrix(parameters)
> parameters
[,1]
[1,] 73.0000000
[2,] 98.7000000
[3,] 7.0000000
[4,] 0.0030000
這是確切的方式R中的數據寫入到隨後的文本文件:
write.table(format(parameters,digits=7),"parameters.txt",col.names=F, row.names=F,quote=F)
到目前爲止好。現在Fortran腳本出現並且[3,1]有問題。注意值(7.0)之前的空格也存在於文本文件中。如果我在數字「7」之前手動刪除一個空格,Fortran工作正常......如果我不這樣做,它會崩潰。有沒有辦法讓R不能創造這個空間?看來R試圖始終在每一行的完全相同的位置有小數點,但我需要所有的值都保持爲alligned。我想在將它們寫入文本文件之前將數字轉換爲字符串,但Fortran並不喜歡這樣(它將「3」變成「0.0000003」),但不幸的是我無法訪問該Fortran碼。將矩陣轉換爲data.frame也不會改變任何內容。
希望你有我的問題。謝謝你的幫助!
根據'format'使用'format(參數,digits = 7,trim = TRUE)'應該可以解決您的問題 – Tensibai