2016-08-04 129 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包的维护者。)