我正在使用新的 R 包 RNOAA 来访问来自 NOAA 的气候数据,目前正在一次执行一个时间段。像这样。
PRCP_2002a<- ncdc(datasetid='GHCND', datatypeid ='PRCP', startdate = '2001-08-13', enddate = '2002-02-13', stationid='x', token = 'x', limit = 500)
我最终得到了一长串上述代码,其中包含许多不同的开始和停止日期,每个时间段使用一行代码手动输入。有没有办法使用 for 循环和 lapply 或类似的东西,从数据框或列表中获取每个开始和停止日期,并且结果对象也从列表或数据框中命名?我大概会读到这样的 csv 文件。
Periods <- read.csv("Climate_dates.csv")
ID Start Stop
1 2002S 2001-08-13 2002-02-13
2 2002F 2002-04-02 2002-10-02
3 2003S 2002-09-19 2003-03-19
4 2003F 2003-04-22 2003-10-22
5 2004S 2003-09-30 2004-03-31
6 2004F 2004-04-20 2004-10-20
7 2005S 2004-09-23 2005-03-23
8 2005F 2005-04-26 2005-10-26
然后一些方法将日期和 ID 按顺序引用为 for 循环或 lapply 或任何迭代。
ID in Periods<- ncdc(datasetid='GHCND', datatypeid ='PRCP', startdate = 'Start in Periods', enddate = 'Stop in Periods', stationid='x', token = 'x', limit = 500)
任何帮助是极大的赞赏。为我的无能道歉。
Pierre 建议了这个解决方案,但它似乎没有为 ncdc 命令提供开始或结束日期。有什么想法吗?
mylst <- apply(Periods[-1], 1, function(x) ncdc(datasetid='GHCND', datatypeid ='PRCP', startdate = x[1], enddate = x[2], stationid='x', token = 'x', limit = 500))
Warning messages:
1: Error: (400) - Required parameter 'startdate' is missing.
2: Error: (400) - Required parameter 'startdate' is missing.
3: Error: (400) - Required parameter 'startdate' is missing.
4: Error: (400) - Required parameter 'startdate' is missing.
5: Error: (400) - Required parameter 'startdate' is missing.
6: Error: (400) - Required parameter 'startdate' is missing.
7: Error: (400) - Required parameter 'startdate' is missing.
8: Error: (400) - Required parameter 'startdate' is missing.