如何在R data.table中按组进行子集设置时获取不同行数的切片

Joh*_*olo 5 r data.table

我有一个 data.table,其中包含多个站点超过 15 天的温度和其他天气信息的观测值。这dput是针对两个站点的所有观察结果。

library(data.table)

structure(list(site = c("100", "100", "100", "100", "100", "100", 
"100", "100", "100", "100", "100", "100", "100", "100", "100"
), precursor_date = structure(c(15203, 15202, 15201, 15200, 15199, 
15198, 15197, 15196, 15195, 15194, 15193, 15192, 15191, 15190, 
15189), class = "Date"), lat = c(46.864, 46.864, 46.864, 46.864, 
46.864, 46.864, 46.864, 46.864, 46.864, 46.864, 46.864, 46.864, 
46.864, 46.864, 46.864), lon = c(-67.998, -67.998, -67.998, -67.998, 
-67.998, -67.998, -67.998, -67.998, -67.998, -67.998, -67.998, 
-67.998, -67.998, -67.998, -67.998), origDate = structure(c(15204, 
15204, 15204, 15204, 15204, 15204, 15204, 15204, 15204, 15204, 
15204, 15204, 15204, 15204, 15204), class = "Date"), last = c(2011, 
2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 
2011, 2011, 2011), begin = c(2011, 2011, 2011, 2011, 2011, 2011, 
2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011), precursor_day_labl = structure(1:15, .Label = c("obd_p1", 
"obd_p2", "obd_p3", "obd_p4", "obd_p5", "obd_p6", "obd_p7", "obd_p8", 
"obd_p9", "obd_p10", "obd_p11", "obd_p12", "obd_p13", "obd_p14", 
"obd_p15"), class = "factor"), year = c(2011, 2011, 2011, 2011, 
2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011
), yday = c(229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 
219, 218, 217, 216, 215), dayl = c(50112, 50457.6015625, 50457.6015625, 
50803.19921875, 50803.19921875, 51148.80078125, 51148.80078125, 
51494.3984375, 51494.3984375, 51840, 51840, 52185.6015625, 52185.6015625, 
52531.19921875, 52531.19921875), prcp = c(0, 17, 5, 4, 6, 6, 
13, 8, 0, 16, 14, 6, 0, 0, 7), srad = c(403.200012207031, 176, 
249.600006103516, 288, 297.600006103516, 268.799987792969, 179.199996948242, 
192, 406.399993896484, 208, 227.199996948242, 307.200012207031, 
371.200012207031, 304, 182.399993896484), swe = c(0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), tmax = c(22.5, 20.5, 24.5, 
26.5, 25, 22.5, 20.5, 21, 24, 23.5, 25, 28, 24, 23.5, 22), tmin = c(10.5, 
14.5, 15, 14.5, 12.5, 12, 14, 14, 11, 15.5, 16, 14, 12.5, 14.5, 
15), vp = c(1280, 1640, 1720, 1640, 1440, 1400, 1600, 1600, 1320, 
1760, 1800, 1600, 1440, 1640, 1720), satv = c(19.99250234375, 
17.77504867875, 22.44414580875, 25.14497571375, 23.09540625, 
19.99250234375, 17.77504867875, 18.30827693, 21.80845952, 21.18811306125, 
23.09540625, 27.34314816, 21.80845952, 21.18811306125, 19.41676944
), r_hum = c(64.024001497749, 92.2641636397099, 76.6346830330004, 
65.2217770527891, 62.3500614976193, 70.026251638163, 90.0138181850829, 
87.3921672758967, 60.526971141151, 83.0654431053979, 77.9375768720241, 
58.5155736507555, 66.0294230630738, 77.4018901663935, 88.5832221119478
)), class = c("data.table", "data.frame"), row.names = c(NA, 
-15L), .internal.selfref = <pointer: 0x000001b632fd1ef0>)
Run Code Online (Sandbox Code Playgroud)

我想获取从开始日开始按时间向后移动的 15 天的每个 #-day 间隔的天气数据(prcp, tmax, tmin, r_hum)的平均值,我origDateDT. 进入每个站点各自 15 天窗口的日期在precursor_date. 将只有一个 2 天平均值、一个 3 天平均值、一个 4 天平均值等,并且这些将基于紧接在origDate. 例如,如果开始日期是 2011-08-18,我想要 8-18(08-17 和 08-16)、3 天(08-17、08-16、08-15)之前 2 天的平均值等,直到最大的窗口,15 天(08-17 到 08-03)。我不需要在 15 天窗口中可能的每个小间隔平均值。就在前面的那个origDate

为了了解我想要的子集,在 中dplyr,我可以使用

df %>% group_by(site) %>% slice_head(n= x) 
# A tibble: 2,556 x 19
# Groups:   site [1,278]
site  precursor_date   lat   lon origDate    last begin precursor_day_l~  year  yday   dayl  prcp  srad   swe  tmax
   <chr> <date>         <dbl> <dbl> <date>     <dbl> <dbl> <fct>            <dbl> <dbl>  <dbl> <dbl> <dbl> <dbl> <dbl>
 1 100   2011-08-17      46.9 -68.0 2011-08-18  2011  2011 obd_p1            2011   229 50112      0  403.     0  22.5
 2 100   2011-08-16      46.9 -68.0 2011-08-18  2011  2011 obd_p2            2011   228 50458.    17  176      0  20.5
 3 101   2011-08-11      44.3 -72.7 2011-08-12  2011  2011 obd_p1            2011   223 50458.     8  272      0  26  
 4 101   2011-08-10      44.3 -72.7 2011-08-12  2011  2011 obd_p2            2011   222 50803.    25  253.     0  26.5
 5 102   2011-08-21      46.5 -68.0 2011-08-22  2011  2011 obd_p1            2011   233 49421.     0  378.     0  27  
 6 102   2011-08-20      46.5 -68.0 2011-08-22  2011  2011 obd_p2            2011   232 49421.     1  397.     0  28  
Run Code Online (Sandbox Code Playgroud)

其中 x 是我想在获得平均值之前从每个组中提取子集的天数。但如果我使用

df %>% group_by(site) %>% slice_head(n= x) %>% mean(prcp)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误,我不知道为什么。错误是

Warning message:
In mean.default(., "prcp") :
  argument is not numeric or logical: returning NA
Run Code Online (Sandbox Code Playgroud)

虽然我不知道为什么会发生该错误,但我更倾向于让子集在data.table. 我想要子集均值的列是 prcp、tmax、tmin 和 r_hum。我最终会创建 60 个新列,每个天气变量 15 个。并且很多列都会有 NA 或其他东西,因为 DT 在列中有日常观察。为了了解输出可能是什么样子,这里有一个模型。它不必看起来像这样,只要我在 DT 中将每个天气变量和时间窗口的方法与适当的站点对齐即可。

site precursor_date    lat     lon   origDate ... prcp2dmean prcp3dmean prcp4dmean ... tmax2dmean tmax3dmean ...
 100     2011-08-17 46.864 -67.998 2011-08-18 ...        1.2        1.4        1.4 ...         25         24 ...
 100     2011-08-16 46.864 -67.998 2011-08-18 ...        1.2        1.4        1.4 ...         25         24 ...
 100     2011-08-15 46.864 -67.998 2011-08-18 ...         NA        1.4        1.4 ...         NA         24 ...
 100     2011-08-14 46.864 -67.998 2011-08-18 ...         NA         NA        1.4 ...         NA         NA ...
 100     2011-08-13 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
 100     2011-08-12 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
 100     2011-08-11 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
 100     2011-08-10 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
 100     2011-08-09 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
 100     2011-08-08 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
 100     2011-08-07 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
 100     2011-08-06 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
 100     2011-08-05 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
 100     2011-08-04 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
 100     2011-08-03 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
  10     2011-08-17 46.864 -67.998 2011-08-18 ...        1.2        1.4        1.4 ...         25         24 ...
  10     2011-08-16 46.864 -67.998 2011-08-18 ...        1.2        1.4        1.4 ...         25         24 ...
  10     2011-08-15 46.864 -67.998 2011-08-18 ...         NA        1.4        1.4 ...         NA         24 ...
  10     2011-08-14 46.864 -67.998 2011-08-18 ...         NA         NA        1.4 ...         NA         NA ...
  10     2011-08-13 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
  10     2011-08-12 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
  10     2011-08-11 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
  10     2011-08-10 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
  10     2011-08-09 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
  10     2011-08-08 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
  10     2011-08-07 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
  10     2011-08-06 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
  10     2011-08-05 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
  10     2011-08-04 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
  10     2011-08-03 46.864 -67.998 2011-08-18 ...         NA         NA         NA ...         NA         NA ...
Run Code Online (Sandbox Code Playgroud)

在我的 DT 我试过

pi_df5[, pi_df5 %>% slice_head(n=2) %>% mean(prcp), by = site]
Run Code Online (Sandbox Code Playgroud)

但这不起作用。

Tim*_*Fan 1

这是使用 {data.table} 的方法frollmean。请注意,这种方法会产生大量您可能不需要的信息。例如,prcp2显示每天的两天平均值,它可以计算该平均值而不显示NAs。如果我理解正确的话,您只需要最后一天计算的两天平均值。另一方面,15 天平均值只能在最后一天计算一次,而在示例输出中,15 天平均值显示在每一行中。

注意:本文使用的早期版本eval(parse())是不必要的,因为frollmean可以将data.frames和 向量作为 xn参数,正如 @jangorecki 在评论中正确指出的那样。

抱歉,大部分reprex都是原始数据:

library(data.table)

# original data
dat <-
  structure(list(site = c("100", "100", "100", "100", "100", "100", "100", "100",
                          "100", "100", "100", "100", "100", "100", "100"),
                 precursor_date = structure(c(15203, 15202, 15201, 15200, 15199, 
                                              15198, 15197, 15196, 15195, 15194, 15193, 15192,
                                              15191, 15190, 15189), class = "Date"),
                 lat = c(46.864, 46.864, 46.864, 46.864, 46.864, 46.864, 46.864,
                         46.864, 46.864, 46.864, 46.864, 46.864,46.864, 46.864,
                         46.864),
                 lon = c(-67.998, -67.998, -67.998, -67.998,  -67.998, -67.998,
                         -67.998, -67.998, -67.998, -67.998, -67.998, -67.998,
                         -67.998, -67.998, -67.998),
                 origDate = structure(c(15204, 15204, 15204, 15204, 15204, 15204,
                                        15204, 15204, 15204, 15204,  15204, 15204,
                                        15204, 15204, 15204),class = "Date"),
                 last = c(2011,  2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011,
                          2011, 2011, 2011, 2011, 2011, 2011),
                 begin = c(2011, 2011, 2011, 2011, 2011, 2011,2011, 2011, 2011,
                           2011, 2011, 2011, 2011, 2011, 2011),
                 precursor_day_labl = structure(1:15,
                                                .Label = c("obd_p1",  "obd_p2", "obd_p3", "obd_p4", "obd_p5",
                                                           "obd_p6", "obd_p7", "obd_p8",  "obd_p9", "obd_p10",
                                                           "obd_p11", "obd_p12", "obd_p13", "obd_p14", "obd_p15"),
                                                class = "factor"),
                 year = c(2011, 2011, 2011, 2011,  2011, 2011,2011, 2011, 2011,
                          2011, 2011, 2011, 2011, 2011, 2011),
                 yday = c(229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219,
                          218, 217, 216, 215),
                 dayl = c(50112, 50457.6015625, 50457.6015625,  50803.19921875,
                          50803.19921875, 51148.80078125, 51148.80078125, 
                          51494.3984375, 51494.3984375, 51840, 51840, 52185.6015625,
                          52185.6015625,  52531.19921875, 52531.19921875),
                 prcp = c(0, 17, 5, 4, 6, 6,  13, 8, 0, 16, 14, 6, 0, 0, 7),
                 srad = c(403.200012207031, 176,  249.600006103516, 288,
                          297.600006103516, 268.799987792969, 179.199996948242, 
                          192, 406.399993896484, 208, 227.199996948242, 307.200012207031,
                          371.200012207031, 304, 182.399993896484),
                 swe = c(0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
                 tmax = c(22.5, 20.5, 24.5, 26.5, 25, 22.5, 20.5, 21, 24, 23.5,
                          25, 28, 24, 23.5, 22),
                 tmin = c(10.5,  14.5, 15, 14.5, 12.5, 12, 14, 14, 11, 15.5, 16,
                          14, 12.5, 14.5, 15),
                 vp = c(1280, 1640, 1720, 1640, 1440, 1400, 1600, 1600, 1320, 1760,
                        1800, 1600, 1440, 1640, 1720),
                 satv = c(19.99250234375,  17.77504867875, 22.44414580875,
                          25.14497571375, 23.09540625,19.99250234375,
                          17.77504867875, 18.30827693, 21.80845952, 21.18811306125, 
                          23.09540625, 27.34314816, 21.80845952, 21.18811306125,
                          19.41676944),
                 r_hum = c(64.024001497749, 92.2641636397099, 76.6346830330004, 
                           65.2217770527891, 62.3500614976193, 70.026251638163,
                           90.0138181850829,  87.3921672758967, 60.526971141151,
                           83.0654431053979, 77.9375768720241, 58.5155736507555,
                           66.0294230630738, 77.4018901663935, 88.5832221119478)
  ), class = c("data.table", "data.frame"), row.names = c(NA, -15L))


# the actual calculation starts here -------------------------------
mean_vars <- c("prcp", "tmax", "tmin", "r_hum")

setDT(dat)[,
           c(paste0(rep(mean_vars, each = 14) , 2:15)) :=
             frollmean(.SD, 2:15, align = 'left'),
           by = site,
           .SDcols = mean_vars][]

#>     site precursor_date    lat     lon   origDate last begin precursor_day_labl
#>  1:  100     2011-08-17 46.864 -67.998 2011-08-18 2011  2011             obd_p1
#>  2:  100     2011-08-16 46.864 -67.998 2011-08-18 2011  2011             obd_p2
#>  3:  100     2011-08-15 46.864 -67.998 2011-08-18 2011  2011             obd_p3
#>  4:  100     2011-08-14 46.864 -67.998 2011-08-18 2011  2011             obd_p4
#>  5:  100     2011-08-13 46.864 -67.998 2011-08-18 2011  2011             obd_p5
#>  6:  100     2011-08-12 46.864 -67.998 2011-08-18 2011  2011             obd_p6
#>  7:  100     2011-08-11 46.864 -67.998 2011-08-18 2011  2011             obd_p7
#>  8:  100     2011-08-10 46.864 -67.998 2011-08-18 2011  2011             obd_p8
#>  9:  100     2011-08-09 46.864 -67.998 2011-08-18 2011  2011             obd_p9
#> 10:  100     2011-08-08 46.864 -67.998 2011-08-18 2011  2011            obd_p10
#> 11:  100     2011-08-07 46.864 -67.998 2011-08-18 2011  2011            obd_p11
#> 12:  100     2011-08-06 46.864 -67.998 2011-08-18 2011  2011            obd_p12
#> 13:  100     2011-08-05 46.864 -67.998 2011-08-18 2011  2011            obd_p13
#> 14:  100     2011-08-04 46.864 -67.998 2011-08-18 2011  2011            obd_p14
#> 15:  100     2011-08-03 46.864 -67.998 2011-08-18 2011  2011            obd_p15
#>     year yday    dayl prcp  srad swe tmax tmin   vp     satv    r_hum prcp2
#>  1: 2011  229 50112.0    0 403.2   0 22.5 10.5 1280 19.99250 64.02400   8.5
#>  2: 2011  228 50457.6   17 176.0   0 20.5 14.5 1640 17.77505 92.26416  11.0
#>  3: 2011  227 50457.6    5 249.6   0 24.5 15.0 1720 22.44415 76.63468   4.5
#>  4: 2011  226 50803.2    4 288.0   0 26.5 14.5 1640 25.14498 65.22178   5.0
#>  5: 2011  225 50803.2    6 297.6   0 25.0 12.5 1440 23.09541 62.35006   6.0
#>  6: 2011  224 51148.8    6 268.8   0 22.5 12.0 1400 19.99250 70.02625   9.5
#>  7: 2011  223 51148.8   13 179.2   0 20.5 14.0 1600 17.77505 90.01382  10.5
#>  8: 2011  222 51494.4    8 192.0   0 21.0 14.0 1600 18.30828 87.39217   4.0
#>  9: 2011  221 51494.4    0 406.4   0 24.0 11.0 1320 21.80846 60.52697   8.0
#> 10: 2011  220 51840.0   16 208.0   0 23.5 15.5 1760 21.18811 83.06544  15.0
#> 11: 2011  219 51840.0   14 227.2   0 25.0 16.0 1800 23.09541 77.93758  10.0
#> 12: 2011  218 52185.6    6 307.2   0 28.0 14.0 1600 27.34315 58.51557   3.0
#> 13: 2011  217 52185.6    0 371.2   0 24.0 12.5 1440 21.80846 66.02942   0.0
#> 14: 2011  216 52531.2    0 304.0   0 23.5 14.5 1640 21.18811 77.40189   3.5
#> 15: 2011  215 52531.2    7 182.4   0 22.0 15.0 1720 19.41677 88.58322    NA
#>         prcp3 prcp4 prcp5    prcp6    prcp7 prcp8    prcp9 prcp10   prcp11
#>  1:  7.333333  6.50   6.4 6.333333 7.285714 7.375 6.555556    7.5 8.090909
#>  2:  8.666667  8.00   7.6 8.500000 8.428571 7.375 8.333333    8.9 8.636364
#>  3:  5.000000  5.25   6.8 7.000000 6.000000 7.250 8.000000    7.8 7.090909
#>  4:  5.333333  7.25   7.4 6.166667 7.571429 8.375 8.111111    7.3 6.636364
#>  5:  8.333333  8.25   6.6 8.166667 9.000000 8.625 7.666667    6.9 6.909091
#>  6:  9.000000  6.75   8.6 9.500000 9.000000 7.875 7.000000    7.0       NA
#>  7:  7.000000  9.25  10.2 9.500000 8.142857 7.125 7.111111     NA       NA
#>  8:  8.000000  9.50   8.8 7.333333 6.285714 6.375       NA     NA       NA
#>  9: 10.000000  9.00   7.2 6.000000 6.142857    NA       NA     NA       NA
#> 10: 12.000000  9.00   7.2 7.166667       NA    NA       NA     NA       NA
#> 11:  6.666667  5.00   5.4       NA       NA    NA       NA     NA       NA
#> 12:  2.000000  3.25    NA       NA       NA    NA       NA     NA       NA
#> 13:  2.333333    NA    NA       NA       NA    NA       NA     NA       NA
#> 14:        NA    NA    NA       NA       NA    NA       NA     NA       NA
#> 15:        NA    NA    NA       NA       NA    NA       NA     NA       NA
#>       prcp12   prcp13   prcp14 prcp15 tmax2    tmax3  tmax4 tmax5    tmax6
#>  1: 7.916667 7.307692 6.785714    6.8 21.50 22.50000 23.500  23.8 23.58333
#>  2: 7.916667 7.307692 7.285714     NA 22.50 23.83333 24.125  23.8 23.25000
#>  3: 6.500000 6.538462       NA     NA 25.50 25.33333 24.625  23.8 23.33333
#>  4: 6.666667       NA       NA     NA 25.75 24.66667 23.625  23.1 23.25000
#>  5:       NA       NA       NA     NA 23.75 22.66667 22.250  22.6 22.75000
#>  6:       NA       NA       NA     NA 21.50 21.33333 22.000  22.3 22.75000
#>  7:       NA       NA       NA     NA 20.75 21.83333 22.250  22.8 23.66667
#>  8:       NA       NA       NA     NA 22.50 22.83333 23.375  24.3 24.25000
#>  9:       NA       NA       NA     NA 23.75 24.16667 25.125  24.9 24.66667
#> 10:       NA       NA       NA     NA 24.25 25.50000 25.125  24.8 24.33333
#> 11:       NA       NA       NA     NA 26.50 25.66667 25.125  24.5       NA
#> 12:       NA       NA       NA     NA 26.00 25.16667 24.375    NA       NA
#> 13:       NA       NA       NA     NA 23.75 23.16667     NA    NA       NA
#> 14:       NA       NA       NA     NA 22.75       NA     NA    NA       NA
#> 15:       NA       NA       NA     NA    NA       NA     NA    NA       NA
#>        tmax7   tmax8    tmax9 tmax10   tmax11   tmax12   tmax13   tmax14
#>  1: 23.14286 22.8750 23.00000  23.05 23.22727 23.62500 23.65385 23.64286
#>  2: 22.92857 23.0625 23.11111  23.30 23.72727 23.75000 23.73077 23.60714
#>  3: 23.42857 23.4375 23.61111  24.05 24.04545 24.00000 23.84615       NA
#>  4: 23.28571 23.5000 24.00000  24.00 23.95455 23.79167       NA       NA
#>  5: 23.07143 23.6875 23.72222  23.70 23.54545       NA       NA       NA
#>  6: 23.50000 23.5625 23.55556  23.40       NA       NA       NA       NA
#>  7: 23.71429 23.6875 23.50000     NA       NA       NA       NA       NA
#>  8: 24.14286 23.8750       NA     NA       NA       NA       NA       NA
#>  9: 24.28571      NA       NA     NA       NA       NA       NA       NA
#> 10:       NA      NA       NA     NA       NA       NA       NA       NA
#> 11:       NA      NA       NA     NA       NA       NA       NA       NA
#> 12:       NA      NA       NA     NA       NA       NA       NA       NA
#> 13:       NA      NA       NA     NA       NA       NA       NA       NA
#> 14:       NA      NA       NA     NA       NA       NA       NA       NA
#> 15:       NA      NA       NA     NA       NA       NA       NA       NA
#>       tmax15 tmin2    tmin3  tmin4 tmin5    tmin6    tmin7   tmin8    tmin9
#>  1: 23.53333 12.50 13.33333 13.625  13.4 13.16667 13.28571 13.3750 13.11111
#>  2:       NA 14.75 14.66667 14.125  13.7 13.75000 13.78571 13.4375 13.66667
#>  3:       NA 14.75 14.00000 13.500  13.6 13.66667 13.28571 13.5625 13.83333
#>  4:       NA 13.50 13.00000 13.250  13.4 13.00000 13.35714 13.6875 13.72222
#>  5:       NA 12.25 12.83333 13.125  12.7 13.16667 13.57143 13.6250 13.50000
#>  6:       NA 13.00 13.33333 12.750  13.3 13.75000 13.78571 13.6250 13.72222
#>  7:       NA 14.00 13.00000 13.625  14.1 14.08333 13.85714 13.9375 14.05556
#>  8:       NA 12.50 13.50000 14.125  14.1 13.83333 13.92857 14.0625       NA
#>  9:       NA 13.25 14.16667 14.125  13.8 13.91667 14.07143      NA       NA
#> 10:       NA 15.75 15.16667 14.500  14.5 14.58333       NA      NA       NA
#> 11:       NA 15.00 14.16667 14.250  14.4       NA       NA      NA       NA
#> 12:       NA 13.25 13.66667 14.000    NA       NA       NA      NA       NA
#> 13:       NA 13.50 14.00000     NA    NA       NA       NA      NA       NA
#> 14:       NA 14.75       NA     NA    NA       NA       NA      NA       NA
#> 15:       NA    NA       NA     NA    NA       NA       NA      NA       NA
#>     tmin10   tmin11   tmin12   tmin13   tmin14 tmin15   r_hum2   r_hum3
#>  1:  13.35 13.59091 13.62500 13.53846 13.60714   13.7 78.14408 77.64095
#>  2:  13.90 13.90909 13.79167 13.84615 13.92857     NA 84.44942 78.04021
#>  3:  13.85 13.72727 13.79167 13.88462       NA     NA 70.92823 68.06884
#>  4:  13.60 13.68182 13.79167       NA       NA     NA 63.78592 65.86603
#>  5:  13.60 13.72727       NA       NA       NA     NA 66.18816 74.13004
#>  6:  13.85       NA       NA       NA       NA     NA 80.02003 82.47741
#>  7:     NA       NA       NA       NA       NA     NA 88.70299 79.31099
#>  8:     NA       NA       NA       NA       NA     NA 73.95957 76.99486
#>  9:     NA       NA       NA       NA       NA     NA 71.79621 73.84333
#> 10:     NA       NA       NA       NA       NA     NA 80.50151 73.17286
#> 11:     NA       NA       NA       NA       NA     NA 68.22658 67.49419
#> 12:     NA       NA       NA       NA       NA     NA 62.27250 67.31563
#> 13:     NA       NA       NA       NA       NA     NA 71.71566 77.33818
#> 14:     NA       NA       NA       NA       NA     NA 82.99256       NA
#> 15:     NA       NA       NA       NA       NA     NA       NA       NA
#>       r_hum4   r_hum5   r_hum6   r_hum7   r_hum8   r_hum9  r_hum10  r_hum11
#>  1: 74.53616 72.09894 71.75349 74.36211 75.99087 74.27265 75.15193 75.40517
#>  2: 74.11767 73.29939 76.08513 77.70042 75.55374 76.38837 76.54329 74.90441
#>  3: 68.55819 72.84932 75.27313 73.16653 74.40390 74.79653 73.16843 72.51943
#>  4: 71.90298 75.00082 72.58851 74.08521 74.56676 72.78329 72.10791 72.58918
#>  5: 77.44557 74.06185 75.56245 75.90176 73.72848 72.87303 73.32592 74.71295
#>  6: 76.98980 78.20493 78.16037 75.35397 74.18840 74.54546 75.94923       NA
#>  7: 80.24960 79.78720 76.24193 74.78300 75.11036 76.60734       NA       NA
#>  8: 77.23054 73.48755 72.24453 72.98129 74.93153       NA       NA       NA
#>  9: 70.01139 69.21500 70.57948 73.15144       NA       NA       NA       NA
#> 10: 71.38700 72.58998 75.25552       NA       NA       NA       NA       NA
#> 11: 69.97112 73.69354       NA       NA       NA       NA       NA       NA
#> 12: 72.63253       NA       NA       NA       NA       NA       NA       NA
#> 13:       NA       NA       NA       NA       NA       NA       NA       NA
#> 14:       NA       NA       NA       NA       NA       NA       NA       NA
#> 15:       NA       NA       NA       NA       NA       NA       NA       NA
#>      r_hum12  r_hum13  r_hum14 r_hum15
#>  1: 73.99771 73.38476 73.67170 74.6658
#>  2: 74.16483 74.41383 75.42593      NA
#>  3: 72.92630 74.13068       NA      NA
#>  4: 73.92201       NA       NA      NA
#>  5:       NA       NA       NA      NA
#>  6:       NA       NA       NA      NA
#>  7:       NA       NA       NA      NA
#>  8:       NA       NA       NA      NA
#>  9:       NA       NA       NA      NA
#> 10:       NA       NA       NA      NA
#> 11:       NA       NA       NA      NA
#> 12:       NA       NA       NA      NA
#> 13:       NA       NA       NA      NA
#> 14:       NA       NA       NA      NA
#> 15:       NA       NA       NA      NA
Run Code Online (Sandbox Code Playgroud)

由reprex 包(v0.3.0)于 2020 年 11 月 10 日创建