并感谢您的帮助。
目前,程序 R 中的 rnoaa 包为您提供输出为list
. 您可以轻松访问此列表中的数据;但是,我想改变数据的输出方式。它目前不是我可以使用的格式。我有动物搬迁,我正在尝试为每只动物搬迁指定的温度值,该温度值在该地点当天记录。
目前我的动物数据框的头部如下所示:
ID date time datetime lat lon DOP Elevation
1 333 2017-03-15 2:30:47 AM 2017-03-15 02:30:47 32.73810 -90.15422 3 48.64
2 333 2017-03-15 10:30:28 PM 2017-03-14 22:30:28 32.73797 -90.15424 2 39.45
3 333 2017-05-25 10:31:00 PM 2017-05-24 22:31:00 32.73790 -90.15489 7 91.02
4 333 2017-05-25 2:30:30 AM 2017-05-25 02:30:30 32.73758 -90.15488 4 28.65
5 333 2017-05-13 10:30:54 AM 2017-05-13 10:30:54 32.73753 -90.15261 4 32.97
6 333 2017-04-14 2:31:59 AM 2017-04-14 02:31:59 32.73747 -90.15155 5 45.97
从 rnoaa 包中获取天气数据很容易。
library(rnoaa)
weather <- ncdc(datasetid = "GHCND", stationid = "GHCND:USC00221389", datatypeid = c("PRCP", "TMIN", "TMAX", "TOBS"),
startdate = "2017-03-01", enddate = "2017-12-31", add_units = T, limit = 1000)
然而, rnoaa 的输出是一个看起来像这样的 tibble。
$data
# A tibble: 1,000 x 9
date datatype station value fl_m fl_q fl_so fl_t units
<chr> <chr> <chr> <int> <chr> <chr> <chr> <chr> <chr>
1 2017-03-01T00:00:00 PRCP GHCND:USC00221389 0 "" "" 7 0700 mm_tenths
2 2017-03-02T00:00:00 PRCP GHCND:USC00221389 175 "" "" 7 0700 mm_tenths
3 2017-03-03T00:00:00 PRCP GHCND:USC00221389 0 "" "" 7 0700 mm_tenths
4 2017-03-04T00:00:00 PRCP GHCND:USC00221389 0 "" "" 7 0700 mm_tenths
5 2017-03-05T00:00:00 PRCP GHCND:USC00221389 0 "T" "" 7 0700 mm_tenths
6 2017-03-05T00:00:00 TOBS GHCND:USC00221389 94 "" "" 7 0700 celcius_tenths
7 2017-03-06T00:00:00 PRCP GHCND:USC00221389 18 "" "" 7 0700 mm_tenths
8 2017-03-06T00:00:00 TMAX GHCND:USC00221389 183 "" "" 7 0700 celcius_tenths
9 2017-03-06T00:00:00 TMIN GHCND:USC00221389 94 "" "" 7 0700 celcius_tenths
10 2017-03-06T00:00:00 TOBS GHCND:USC00221389 167 "" "" 7 0700 celcius_tenths
我想将 tibble 的输出更改为每一行都是一个日期,并且 datatype 中的数据类型现在是一列。因此,我的动物迁移数据集中每天都会有降水量、最高温度、最低温度。像这样的东西。
date PRCP TOBS TMAX TMIN
2017-03-06 5 78 85 72
然后,我可以轻松地将其添加到我的动物重定位数据集中,使其看起来像这样。
ID date time datetime lat lon DOP Elevation PRCP TOBS TMAX TMIN
1 333 2017-03-15 2:30:47 AM 2017-03-15 02:30:47 32.73810 -90.15422 3 48.64 5 78 85 72