【发布时间】:2021-01-03 16:20:23
【问题描述】:
我正在尝试使用 R 的数据检索包从 USGS 保存流数据。它一直工作到现在,但我不是我改变它不再工作的东西,这是我的代码:
siteNumber <- c("094985005","09498501","09489500","09489499","09498502","09511300","09498400","09498500","09489700")
i <- 1
n <- length(siteNumber)
for (i in n) {
Daily_Streamflow <- readNWISdv(siteNumber[i],parameterCd="00060", statCd="00003", "","")
name <- paste("DSF", siteNumber[i], sep = "_")
assign(name, value = Daily_Streamflow)
i <- i + 1
}
现在仅将最后一个站点的数据保存为数据框。有人知道我做错了什么吗?
【问题讨论】:
-
尝试使用
for (i in 1:n)作为你的 for 循环 -
像这样将项目写入全局环境是个坏主意。将它们存储在列表中更整洁、更方便、更安全。您可以使用
DSF <- lapply(siteNumber, readNWISdv, parameterCd="00060", statCd="00003")获得整个列表,而无需使用循环或分配函数。您可以轻松获取每个数据帧(例如DSF$'094985005'),如果您需要对所有帧执行操作或搜索,您可以使用lapply轻松完成