2014-10-01 65 views
0

我有R代碼如下。下面的代碼駐留在一個名爲'iot.R'的文件中。我正在Linux中執行它。linux - 在R中運行系統命令,然後將輸出寫入文件

我想打印變量「fileinformation」的內容由文件提到的文件= fileConn ... 我認爲3號線就能解決問題,但它是不是給所需要的輸出:(

fileinformation = system(paste("file", filenames[1])) 
    #print(fileinformation) 
    cat(print(fileinformation),"\r\n","\r\n", file=fileConn) 

當我運行該文件,我得到下面的結果。它打印輸出到屏幕,而不是寫入文件:(

> source('iot.R') 
CH7Data_20130401T135010.csv: ASCII text, with CRLF line terminators 
[1] 0 

-------------- ------更新1

我也嘗試下面的命令,但沒有得到預期的rsult

cat(capture.output(fileinformation),"\r\n","\r\n", file=fileConn) 

回答

2

您需要在system的調用中將intern參數設置爲TRUE。例如:

fileinformation<-system("file cinzia_2.gif",intern=TRUE) 
    fileinformation 
    #[1] "cinzia_2.gif: GIF image data, version 89a, 640 x 640" 

當然我在我的電腦上試過一個文件。將intern設置爲TRUE,返回值system成爲命令的控制檯輸出。然後,當您撥打cat時,您不需要將fileinformation納入print,但簡單的cat(fileinformation,"\r\n","\r\n", file=fileConn)就足夠了。

0

嗨只是一個評論,因爲我沒有足夠的代表以正常的方式發表意見。但不能使用

write.table 

將輸出保存到文件?它可能更容易?

+0

我寫了很多其他數據到文件= fileConn..aand write.table將創建一個不同的表...它不會添加到fileConn :( – user2543622 2014-10-01 19:49:44

+0

在這種情況下write(),而不是打印與append = TRUE ? – mattbawn 2014-10-01 19:53:50

+0

請給我一個完整的命令,我應該使用.. – user2543622 2014-10-01 20:09:10

相關問題