私のデータセットは次のとおりです。
mydata <- data.frame(
x1= as.factor(1:3),
x2= as.factor (4:6),
x3= as.factor(7:9),
x4= as.factor (2:7),
x5= as.factor(1:6),
x6= as.numeric(1:18),
x7= as.numeric(18:35)
)
x6 と x7 でスプラインを実行したいのですが、x1、x2、x3、x4、x5 をグループ化する前に、次のようにします。
mydata1 <- mydata%>%
nest(-(x1:x5))%>%
mutate(fit = map(data, ~spline(.$x6,.$x7)))
今はbroom::augmentを使いたいのですが、スプラインはリストです。別の問題は、(ggplot2 を使用して) プロットを実行したいということです。
ggplot(data= mydata%>%, aes(x = x6, y = x7))+
geom_line(aes(color = x1, linetype = x2))+
geom_line(data= mydata1$fit, aes(x= .$x, y= .$y,color = x1,linetype = x2))+
facet_grid(x3~x4, scales = "free")
しかし、エラーを教えてください:「エラー:ggplot2はクラスリストのデータを処理する方法を知りません」、ggplotはリストではなくデータフレームを望んでいるためです。データフレームとして適合させる方法、またはリストで拡張を使用する方法はありますか? 拡張を使用できる場合は、次のことができます。
mydata1 <- mydata%>%
nest(-(x1:x5))%>%
mutate(fit = map(data, ~spline(.$x6,.$x7)),
result = map(fit, augment))%>%
unnest(result)
したがって、データフレームに .fitted があり、ggplot を使用できます。