Ищу использовать interp
и interp2xyz
функции от akima
в dplyr
трубы, как я хотел бы вычислить интерполяции с помощью групповой переменной и выводить АБВ ценности и группировка переменной. Так что в идеале я хотел бы что-то вроде этого (общее решение):Нахождение интерполяцией по группе, возможно, используя dplyr
DATFRAME %>%
group_by(GROUPING VARIABLE) %>%
summarise(interp(x, y , z))
Так что относительно просто вычислить некоторые значения интерполяции по всей dataframe, а затем создать еще один dataframe, который имеет эти значения с помощью функции интерполяции из akima
пакета:
library(dplyr)
library(akima)
df <- data.frame(
x=runif(200, 0, 5),
y=runif(200, 0, 5),
z=runif(200, 1, 2),
Group=LETTERS[seq(from = 1, to = 2)])
interp_df <- interp(x=df$x, y=df$y, z=df$z)
interp2xyz(interp_df, data.frame=TRUE)
Но когда я пытаюсь включить те в установку с dplyr
трубы следующим образом:
df %>%
group_by(Group) %>%
summarise(interp(x=x, y=y, z=z))
Error: expecting a single value
Или тогда, возможно, с помощью mutate
:
df %>%
group_by(Group) %>%
mutate(interp(x=x, y=y, z=z))
Error: incompatible size (3), expecting 100 (the group size) or 1
Я не женат на dplyr
решение - это только подход, который я могу думать. Кто-нибудь знает способ вычисления трехмерной интерполяции с помощью переменной группировки, так что результатом является кадр данных со всеми группами и их интерполяции?