讀取或寫入檔案連線
並非總是可以自由地讀取或寫入本地系統路徑。例如,如果 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")