Я пытаюсь сделать линейное приближение для каждого id
в кадре данных между year
с использованием точки x
. dplyr
кажется, как подходящий вариант для этого, но я не могу заставить его работать из-за ошибки:Использование приблизительно в dplyr
Error: incompatible size (9), expecting 3 (the group size) or 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'? – Vedda
@ G.Grothendieck Спасибо. Это сработает. Добавьте ответ, и я возьму – Vedda