【发布时间】:2019-06-10 16:46:39
【问题描述】:
我有一个带有 x,y 坐标和分组变量的 data.frame:
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))
我不关心原始数据(其中包含多个组、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。如果我现在可以使用 interpolated 列应用 fns 不为 NULL 且不为 NA 的函数来改变 newData,否则我就完成了。
【问题讨论】:
-
如果您正在迭代第二个数据集,则在汇总步骤之后,按“组”进行连接,然后对第二个数据中感兴趣的变量应用 splinefun 列进行变异跨度>