У меня есть data.frame с координатами x, y и переменной группировки:
df<-data.frame(group=c(rep(1,3),rep(2,3),rep(3,3)),
x=c(rep(c(1,2,3),3)),
y=c(1,2,3,1,4,9,1,8,27))
Я бы хотел, чтобы сплайн-функция была установлена в каждой группе для последующего использования. Что-то в строках:
df %>% group_by(group) %>% .... foo(splinefun(x,y))
Меня не волнуют исходные данные (которые содержат больше, чем group, x, y), поэтому возвращаемые значения могут быть именованным списком функций или чем угодно, на что я могу ссылаться с помощью переменной группы и получать встроенную функцию сплайна. , Вариант использования - это итерация по второму набору данных с группой и координатой интерполяции x.
Кто-нибудь?
Редактировать
Итак, обновленный пример с newData, который содержит группу, не включенную в таблицу встроенных функций:
df<-data.frame(group=c(rep(1,4),rep(2,4),rep(3,4)),
x=c(rep(c(0,1,2,3),3)),
y=c(0,1,2,3,0,1,4,9,0,1,8,27))
fit<-df %>%
group_by(group) %>%
summarise(fns = list(approxfun(x, y)))
newData <- data.frame(group=c(rep(1,5),rep(2,5),rep(3,5),rep(4,5)) ,
xval = rep(c(0,1,2,3,4),4)) %>%
left_join(fit)
Таким образом, встроенные степенные функции теперь объединены с расширенным набором групп, где столбец fns равен NULL для отсутствующих записей. Если бы я теперь мог мутировать новые данные в столбце , интерполируя , применяя функции, в которых fns не равно NULL, а в противном случае NA, я бы сделал это.