【发布时间】:2016-08-23 22:40:26
【问题描述】:
我正在尝试使用点x 对year 之间的数据框中的每个id 进行线性近似。 dplyr 似乎是一个合适的选择,但由于错误,我无法让它工作:
错误:大小不兼容 (9),预期为 3(组大小)或 1
示例代码:
library(dplyr)
dat <- data.frame(id = c(1,1,1,2,2,2,3,3,3), year = c(1,2,3,1,2,3,1,2,3), x = c(1,NA,2, 3, NA, 4, 5, NA, 6))
# Linear Interpolation
dat %>%
group_by(id) %>%
mutate(x2 = as.numeric(unlist(approx(x = dat$year, y = dat$x, xout = dat$x)[2])))
样本数据:
id year x
1 1 1 1
2 1 2 NA
3 1 3 2
4 2 1 3
5 2 2 NA
6 2 3 4
7 3 1 5
8 3 2 NA
9 3 3 6
【问题讨论】:
-
谢谢,但您有
dplyr解决方案吗? -
@G.Grothendieck 谢谢。这将起作用。添加一个答案,我会接受
-
可能重复,相关帖子:stackoverflow.com/questions/7317607/…
标签: r dplyr approximation