我有一個R代碼分爲多個腳本。代碼的結果取決於主腳本中包含的一些參數。該腳本不是太長(200行),但仍然不是讓參數分散在腳本中,而是將它們都放在一個很好的輸入文件中,這樣會更加整潔。問題是,雖然很容易將類似數據框的文件讀入R,即每列都有一種類型的文件,但我不確定如何讀取自由格式文件。的格式的類型是閱讀一個自由格式的輸入文件
var_1 contents of var_1
var_2 contents of var_2
.
.
.
。例如:
db_filename "goofy.csv"
exe_filename "cal_code.exe"
calibration_parameters "Cd" "fn" "fm"
tests "T1" "T2" "T4" "T9"
test_type "V"
speed 2310
flow_rate 2.238
的參數可以在一個固定的順序指定(使得db_filename
總是在第一行中)。一個解決方案中,每個變量可以在任何行中,只要它只在ONE行中,只要這不會使文件讀取代碼變得複雜起來就更好。什麼是強制性的,格式必須是「免費」,其中「免費」我的意思是,我不希望被迫有變量(例如)始終在第10列(例如)。我也意味着非標量參數的長度必須是可變的:例如,calibration_parameters
和tests
是矢量,如您所見。文件讀取代碼必須能夠處理3個校準參數4,5等。 最後,我使用空格分隔了此文件中的元素,但如果這樣可以簡化任務,我可以接受使用其他分隔符的解決方案。你能幫我讀一下這樣的文件嗎?
我會在稍後嘗試一下代碼,但同時你能解釋''V2''字符串在'separate'表達式中的含義是什麼? – DeltaIV
當您不指定col.names時,V2是來自'''read.csv'''的第二列的默認名稱。我們在由冒號定義的第二列上分開。 – rsmith54
最後一行應該是'tail(df,-1)',而不是'head(df,-1)'。結果是公平的,但不是很好。每個結腸前後的空白數大大地改變了讀取操作的結果。例如,比較倒數第二行「速度:2310」和最後一行「flow_rate:2.238」。倒數第二行在名稱不是「速度」但是速度爲「\」(!!)的列中進行轉換,其前兩個元素爲空,而最後一行在名爲「flow_rate」的列中正確轉換,其第一個元素是「2.238」,它是唯一的空元素。當然,迫使[1/2] – DeltaIV