讀取或寫入檔案連線

並非總是可以自由地讀取或寫入本地系統路徑。例如,如果 R 程式碼流 map-reduce 必須要讀取和寫入檔案連線。還有其他場景,其中一個超越本地系統,隨著雲和大資料的出現,這變得越來越普遍。其中一種方法是按邏輯順序。

建立檔案連線以使用 file() 命令讀取(r 用於讀取模式):

conn <- file("/path/example.data", "r") #when file is in local system
conn1 <- file("stdin", "r") #when just standard input/output for files are available

由於這將建立檔案連線,因此可以從這些檔案連線中讀取資料,如下所示:

line <- readLines(conn, n=1, warn=FALSE)

這裡我們正在逐行讀取檔案連線 conn 中的資料作為 n=1。可以改變 n 的值(例如 10,20 等)來讀取資料塊以便更快地讀取(一次讀取 10 或 20 行塊)。要一次性閱讀完整的檔案,請設定 n=-1

資料處理或說模型執行後; 可以使用許多不同的命令(如 writeLines(),cat() 等)將結果寫回檔案連線,這些命令能夠寫入檔案連線。但是,所有這些命令都將利用為寫入而建立的檔案連線。這可以使用 file() 命令完成:

conn2 <- file("/path/result.data", "w") #when file is in local system
conn3 <- file("stdout", "w") #when just standard input/output for files are available

然後寫入如下資料:

writeLines("text",conn2, sep = "\n")