读取或写入文件连接

并非总是可以自由地读取或写入本地系统路径。例如,如果 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")