2
我期待在dplyr
管道中使用akima
的interp
和interp2xyz
函數,因爲我想通過組變量計算插值並輸出xyz值和分組變量。所以,我的理想,我想是這樣的(一般解決方案):按組查找插值,可能使用dplyr
DATFRAME %>%
group_by(GROUPING VARIABLE) %>%
summarise(interp(x, y , z))
所以這是比較簡單的計算對整個數據幀的一些插值,然後創建一個使用插值功能具有這些值的另一個數據幀從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
解決方案 - 那就是我能想到的辦法。有誰知道通過分組變量來計算3D插值的方法,以至於所有組及其插值的數據框都是結果?