【问题标题】:Automate reading of CSV files in R在 R 中自动读取 CSV 文件
【发布时间】:2017-03-19 13:45:39
【问题描述】:

我正在使用 NOAA 的风暴事件数据库 - 1951 年到 2015 年。链接中的代码和 CSV。 https://www.dropbox.com/sh/lb69l5isa25guc2/AAC4-gYr3N6TVDxEGzBB8fJVa?dl=0

代码已经完成,但我不得不重复以下两行 65 次,手动只更改了几件事:

x52 <- read.csv("StormEvents_details-ftp_v1.0_d1952_c20160223.csv")
n52 <- length(select(x52, EVENT_TYPE) %>% filter(EVENT_TYPE=="Tornado") %>% unlist)

有没有办法告诉 R 将您读取的每个新 CSV 分配给一个新向量(对于 1953、54 等),并对它们执行相同的操作?我找到了这个帖子,但我不认为它是完全相同的问题:Working with Large Number of csv files in R

谢谢

【问题讨论】:

  • 是的,如果各个数据框有相同的列,你可以rbind()它们一起,然后对它们进行操作。是这样吗?如果读入的数据非常不同,那么对于不同的人来说可能必须是不同的笔画^ ^

标签: r csv


【解决方案1】:

我假设您拥有所有文件并将它们放在一个目录中。你可以做类似的事情:

datFiles <- c(list.files(path = "c:/Users/Philip/Downloads/Tornadoes/",
    pattern = "StormEvents_details.*\\.csv$",
    all.files = FALSE, full.names = TRUE, recursive = FALSE, ignore.case = TRUE,
    include.dirs = FALSE, no.. = FALSE))

for (i in 1:length(datFiles)) {
    x[i] <- read.csv(datFiles[i])
    n[i] <- length(select(x[i], EVENT_TYPE) %>% filter(EVENT_TYPE=="Tornado") %>% unlist)
    <your code here>
}

【讨论】:

  • 非常感谢。使用该代码,我收到错误消息:no applicable method for 'select_' applied to an object of class "list" 谷歌多一点 - 我尝试用 bind_cols 或 rbind 替换 list.files 但到目前为止没有运气。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
  • 1970-01-01
  • 1970-01-01
  • 2015-11-26
  • 2014-09-15
  • 2013-08-28
  • 2017-04-09
相关资源
最近更新 更多