如何在 R 中遍历 5 个不同的日期?

How to loop through 5 different dates in R?

我正在尝试通过 rbind 函数合并我在循环中创建的数据框。我对 R 很陌生,所以这可能是一个菜鸟错误。创建列表后,它似乎创建了一个包含 5 个字符的列表。当我尝试 运行 代码时,它没有找到任何数据,因为它没有正确循环日期。

dates <- list("2020-07", "2020-08", "2020-09", "2020-10", "2020-11")
crimes <- data.frame()

for(i in dates){
rbind(crimes,as.data.frame(ukc_crime_location(lat = 52.395355, lng = -1.492943, date = i)))
}

我认为您可能需要crimes <- 在每次迭代中更新crimes,例如

for(i in dates){
     crimes <- rbind(crimes,as.data.frame(ukc_crime_location(lat = 52.395355, lng = -1.492943, date = i)))
}

你走在正确的轨道上,但你需要存储 rbind() 的结果,或者在这个例子中使用 dplyr::bind_rows() 到你的变量 crimes:

library(ukpolice)
library(dplyr)

dates <- c("2020-07", "2020-08", "2020-09", "2020-10", "2020-11")
crimes <- tibble()

for (i in dates) {
  data = ukc_crime_location(lat = 52.395355, lng = -1.492943, date = i)
  crimes <- bind_rows(crimes, data)
}

crimes

编辑: ThomasIsCoding 的回答更直接,当我注意到它缺少一个作业时,我仍在尝试让一个示例工作,因此代码更广泛。

P.S.: 提及您使用的是 library(ukpolice) 会很有帮助。 ;)

使用 lapply 而不是循环的另一个选项

df_list <- lapply(dates, function(x) ukc_crime_location(lat = 52.395355, lng = -1.492943, date = x))
crimes <- do.call(rbind, df_list)

purrr::map_dfr 旨在 rbind 输出列表。

library(purrr)

crimes <- map_dfr(dates, function(x) ukc_crime_location(lat = 52.395355, lng = -1.492943, date = x))