R 打开放置在不同文件夹中的多个文件

R 打开放置在不同文件夹中的多个文件,r,if-statement,for-loop,R,If Statement,For Loop,希望有人能帮助我。我对R的了解非常基础,当我不得不使用循环和条件时,我会感到困惑。问题是我有一个文件夹(结果)。在这个文件夹中,我有几个子文件夹(01、02等)。每个子文件夹都有不同的文件。其中一个文件是文件RESULTS\u file(.cvs)。此文件在每个子文件夹中具有相同的名称,并且是具有不同信息的数据框。此数据框的第一行是变量的名称。我想做的是将所有结果文件放在一个数据帧中。重要的一点是,在这个新的数据框架中,只有第一行应该包含变量的名称。有什么想法吗?谢谢 您可以通过两个步骤完成此操

希望有人能帮助我。我对R的了解非常基础,当我不得不使用循环和条件时,我会感到困惑。问题是我有一个文件夹(结果)。在这个文件夹中,我有几个子文件夹(01、02等)。每个子文件夹都有不同的文件。其中一个文件是文件RESULTS\u file(.cvs)。此文件在每个子文件夹中具有相同的名称,并且是具有不同信息的数据框。此数据框的第一行是变量的名称。我想做的是将所有结果文件放在一个数据帧中。重要的一点是,在这个新的数据框架中,只有第一行应该包含变量的名称。有什么想法吗?谢谢

您可以通过两个步骤完成此操作:

  • 使用
    lappy
    操作文件夹名称,使用
    read.csv
    功能读取每个数据文件。这将返回数据帧列表
  • 使用
    do.call
    rbind
    将这些数据帧组合成单个数据帧

  • 假设您已将所有文件夹的名称存储在向量
    folders
    中,类似于
    folders注意,您应该始终使用
    file.path
    构建路径,然后它将为您处理斜杠分隔符
    file.path(f,“RESULTS\u file.cvs”)
    就是这个方法。@Spacedman更新为使用
    file.path
    ——谢谢你的建议!我没有想过使用lapply,这是有道理的。谢谢!
    dfs <- lapply(folders, function(f) read.csv(file.path(f, "RESULTS_FILE.cvs")))
    dat <- do.call(rbind, dfs)