R 使用AWS.S3包从AWS S3一次读取多个CSV文件对象

R 使用AWS.S3包从AWS S3一次读取多个CSV文件对象,r,amazon-s3,R,Amazon S3,我需要用R中的AWS.S3包从AWS S3 bucket读取多个csv文件,最后将这些文件合并到单个数据帧中进行进一步分析 假设我的S3存储桶中有几个文件,比如“variables_2019-08-12.csv”、“variables_2019-08-13.csv”和“variables_2019-08-14.csv” 我使用的是aws.s3::s3read_,但对于对象部分,我每次只能读取一个csv文件。文件名中有日期,因此我想知道如何在此处添加循环: my_file <- s3rea

我需要用R中的AWS.S3包从AWS S3 bucket读取多个csv文件,最后将这些文件合并到单个数据帧中进行进一步分析

假设我的S3存储桶中有几个文件,比如“variables_2019-08-12.csv”、“variables_2019-08-13.csv”和“variables_2019-08-14.csv”

我使用的是
aws.s3::s3read_,但对于
对象
部分,我每次只能读取一个csv文件。文件名中有日期,因此我想知道如何在此处添加循环:

my_file <- 
s3read_using(FUN = read_csv, object = "variables_2019-08-12.csv", bucket = "my_bucket")

my_file在R中有很多方法可以做到这一点,但对我来说最直观的方法是使用{purrr}包:

objects = c('variables_2019-08-12.csv', 'variables_2019-08-13.csv', …)
names(objects) = gsub('variables_(.*)\\.csv', '\\1', objects)
df = map_dfr(
    objects,
    ~ s3read_using(FUN = read_csv, object = .x, bucket = 'my_bucket'),
    .id = 'Date'
)

由于
名称(对象)
分配,并且由于我们指定了
.id='Date'
,结果数据框将有一个额外的列,包含每个条目的日期(基于文件名)。

谢谢@Konrad,只有一个问题,如果我们有100个csv文件,我想做一个循环,比如
startdate=*\u 2019-08-15 enddate=*\u 2019-08-21 for(I in startdate:enddate){..
。这样做正确吗?是的,正确。我只需要创建一个sting object+date序列,将其输入到对象向量中。伟大的