【问题标题】:Import multiple csv into R using a For loop使用 For 循环将多个 csv 导入 R
【发布时间】:2019-04-27 01:34:40
【问题描述】:

您好,我是 R 新手,正在努力理解我的脚本哪里出错了。我正在尝试仅导入 2 个日期 Sdate 之间的 csv 文件 & Fdate 在脚本顶部附近输入。该脚本运行良好,没有任何错误,但仅拉入列表中的最后一个文件。我在 Windows 10 上,所有文件都在本地机器上。任何帮助将不胜感激。谢谢

Sdate <- as.Date("2018-10-01")
Fdate <- as.Date("2018-10-30")
Ndate = as.character.Date(seq.Date(from = as.Date(Sdate), to = as.Date(Fdate), 
                                   by = "days"), format ="%Y%m%d")

for (i in Ndate){
  MyData <- read.csv(
    file=paste('D:/Data/Merlin Data/Merlin BDD/T1/BDD_',i,'_T1.csv',sep = ""), 
    header=TRUE, sep=",")
}

【问题讨论】:

  • 您遇到的问题是由于您在 for 循环中的每次后续迭代都覆盖了 MyData 。也许您打算在 in for 循环中使用它(附加到现有数据框?处理并保存?)?
  • 你可以使用mydata &lt;- c(mydata, read.csv*) 你只是覆盖你的mydata ,所以尝试追加
  • @12b345b6b78 所以如果我导入到一个临时表中,然后将数据附加到 MyData 就可以了。
  • @mischva11 会拉入文件夹中的所有文件。里面有很多我不需要的文件。
  • 啊,对不起。不,我只是懒得写整个 read.csv 函数。如果您通过它获取所有文件,请像使用它一样使用它。星星的意思是“函数的其余部分”。

标签: r csv for-loop import


【解决方案1】:

问题是你每次循环都会覆盖你的变量。所以让我们改变它。您需要将文件附加到数据框。

一种解决方案是创建一个初始数据框

MyData &lt;- read.csv(file='D:/Data/Merlin Data/Merlin BDD/T1/BDD_20181001_T1.csv', header=TRUE, sep=",")

然后使用 concatenationc() 将您的数据附加到此数据。由于您已经阅读了第一个文件,我们将 Sdate 设置为 Sdate&lt;-as.Date("2018-10-02") 您应该可以通过以下方式读取您的数据:

for (i in :Ndate){ MyData <- read.csv(file=paste('D:/Data/Merlin Data/Merlin BDD/T1/BDD_',i,'_T1.csv',sep = ""), header=TRUE, sep=",") }

【讨论】:

    猜你喜欢
    • 2018-12-14
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 2018-01-19
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多