2016-08-04 218 views
0

我有一個函數,稱爲a(),它將某些東西寫入文件和另一個函數,稱爲b()從文件中讀取某些東西。我想輸出a()的輸出,並將其輸入到b()中,但實際上並未創建文件。這可能嗎?管道輸出到文件功能

(爲好奇:a()aws.s3::save_object(),它從一個S3桶到磁盤保存的對象和b()feather::read_feather(),其內容在一個羽毛文件到tibble。)

+0

你能使用的get_object()從aws.s3只得到從S3對象給工作區? –

+0

然後我將如何通過'read_feather()'來餵食? – RoyalTS

+0

你想要做什麼?您不需要保存文件並將其讀回R. –

回答

1

save_object()返回值是一個包含路徑保存文件的文件字符串,所以你可以嵌套你的函數調用:

library("aws.s3") 
library("feather") 
read_feather(save_object("objectkey", "bucket")) 

如果羽毛能夠從連接讀取(好像它是沒有,但如果它可以),你可以跳過磁盤I/O並使用get_object()代替:

read_feather(rawConnection(get_object("objectkey", "bucket"))) 

(注:我是aws.s3包的維護者。)