2011-12-09 105 views
10

空的CSV文件,我有一個運行於多個數據集的一組功能,並創建一套濃度反應模型的R腳本。我想這樣做是模型參數和其他結果保存了一個CSV文件。創建R中

我的計劃是讓腳本創建一個空的CSV文件,然後作爲腳本的進展,結果被附加到CSV文件。每次腳本運行時,我都希望結果被覆蓋。

我試圖創建一個使用

system("copy /y NUL results.csv > NUL") 

創建該文件的空文件,但沒有創建的文件。當在Windows終端直接運行該命令(即,copy/y NUL results.csv > NUL)工作正常。

我是否缺少一些簡單的東西?系統是Windows XP。

謝謝大家!

回答

17

file.create()是否有什麼問題,它可以跨操作系統使用?

file.create("my.csv") 
# [1] TRUE 

然後,您可以追加到文件,例如,使用append=TRUE參數write.table(),也許是這樣的:

df <- data.frame(a=1:4, b=4:1) 
write.table(df, file="my.csv", sep=",", row.names=FALSE, append=TRUE) 
write.table(df, file="my.csv", sep=",", row.names=FALSE, 
      col.names=FALSE, append=TRUE) 

編輯如果你會做一噸寫入每個文件的,它可以節省大量的時間來打開該文件的連接一次,並且只完成後關閉它。如果情況並非如此,上述方法工作得很好。

+4

另外,嘗試'中肯(「文件\\」。)'來看到一些其他文件處理設施的基礎R. –

+0

可用它的工作原理,但我收到這樣的:'在write.table(DF,文件=「my.csv」 09月=「」,row.names = FALSE ,: 將列名追加到文件中 – Aerox

0

如何只

echo > results.csv 
+0

我得到使用'回聲> results.csv'類似的結果。我認爲這個問題是與系統調用,而不是實際運行的命令,任何命令到標準輸出(例如,'系統(「回聲你好!」)'不產生任何輸出。 – sinclairjesse

4

因爲它是shell命令,所以應該使用shell而不是system。

shell("copy /y NUL results.csv > NUL") 

編輯。更便攜的解決方案:

cat(NULL,file="results.csv") 
+2

這是不能跨操作系統移植,從而帶走R. –

+0

隱藏的寶藏好點的德克,鑑於這種情況,我會接受Josh的答案之一。 – sinclairjesse

+0

系統是Windows XP! –