【发布时间】:2019-02-12 00:19:29
【问题描述】:
我是 purrr 和嵌套数据的新手,我遇到了一个我不明白的问题。基本上,我有一系列不连续的垂直剖面(按区域和压力水平分隔)需要插值。 DPUT 在下面,但我需要从 200、300、500、700 和 1000 的数据插入到例如seq(100,1000,100) 的数据。
这对于nest() 来说似乎是一个完美的问题,所以我尝试了以下方法:
OH_Interp <- as.tibble(Spiv.OH) %>%
group_by(Month, Region) %>%
nest() %>%
mutate(interpolation = modify(data, spline,
xout = seq(100,1000,100))) %>%
select(Month, Region, interpolation) %>%
unnest()
我希望这会返回一个 40x4 的数据帧,它反映了输入数据帧的结构,其中插值数据代替了原始数据。 spline() 似乎工作正常,但由于interpolation 结构没有保留data 的结构,我似乎不能像我预期的那样使用unnest() - 相反,它只会破坏内部结构interpolation 列表的长度,并将输出长度加倍为 8x3 小标题。我怎样才能让它输出一个 40x4 的数据帧呢?
提前感谢您的帮助!
有问题的数据框:
结构(列表(压力 = c(1000L, 900L, 800L, 700L, 500L, 300L, 200L, 1000L, 900L, 800L, 700L, 500L, 300L, 200L, 1000L, 900L, 800L, 700L, 500L, 300L, 200L, 1000L, 900L, 800L, 700L, 500L, 300L, 200L), 值 = c(8.12, 11.76, 17.14, 20.5, 21.08, 14.2, 11.2、7.14、7.59、7.98、8.45、8.72、8.94、8.94、3.24、4.12、4.74、 5.36, 5.34, 4.26, 3.94, 0.09, 0.09, 0.1, 0.11, 0.12, 0.1, 0.1 ), 月 = 结构 (c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L , 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c(“一月”,“七月”),class=“因子”),区域=结构(c(2L,2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("极地", "亚热带"), class= "因子")), .Names = c("压力", "值", "月", "地区"), class= "data.frame", row.names = c(NA, -28L ))
贾里德
【问题讨论】: