【问题标题】:How can I import .cvs files with a loop in R?如何在 R 中使用循环导入 .csv 文件?
【发布时间】:2021-11-19 07:17:47
【问题描述】:

我有一系列名为 Natalidad[i] 的 .cvs 文件,其中 [i] 是从 1996 年到 2020 年的数据年份。我想让 I 循环以加载每个文件。我已经尝试了下一个代码,但它正在工作。

for (i in 1996:2020) { 
  nacimientos[i] <- read.csv("Natalidad [i]_p.csv", header = TRUE, sep = ";") 
}

我也试过不使用[] 并用() 代替。 我的问题可能是基本的。我不熟悉 R 中的循环,所以我可能缺少一些重要的东西。

【问题讨论】:

    标签: r loops csv for-loop


    【解决方案1】:

    如果你在 R 中这样做,你必须先粘贴文件名的字符串。 R 不能在字符串中包含变量。例如。 paste0("first part", i, "second part"),其中 i 是变量。

    试试

    for (i in 1996:2020) { 
      nacimientos[i] <- read.csv(paste0("Natalidad ", [i], "_p.csv"), header = TRUE, sep = ";") 
    }
    

    【讨论】:

    • 非常感谢!这真的很有帮助。
    【解决方案2】:

    由于您最初将问题标记为 Python,因此可以按如下方式完成:

    import pandas as pd
    
    nacimientos = [pd.read_csv(f"Natalidad [{year}]_p.csv", sep=";") for year in range(1996, 2021)]
    

    这会创建一个数据框列表,其中第一个是 1996 年的。它使用 Python“列表推导”来构建列表。

    这相当于:

    nacimientos = []
    
    for year in range(1996, 2021):
        df = pd.read_csv(f"Natalidad [{year}]_p.csv", sep=";")
        nacimientos.append(df)
    

    【讨论】:

    • 尽管它正确且紧凑,但我认为它(列表理解)对于 Python 初学者来说并不像简单的 for 循环那样容易理解。
    • 对不起,我在 R 中寻找建议。我在这里非常初学者,我忘了澄清。无论如何,谢谢你,你的回答可能有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    相关资源
    最近更新 更多