【发布时间】:2018-07-06 00:27:15
【问题描述】:
我有一个整洁的数据框,如下所示:
id samediff gainloss factor value
1 S G happy 5
1 S G sad 3
1 S G angry 4
2 D G happy 2
2 D G sad 3
2 D G angry 5
3 D L happy 1
3 D L sad 4
3 D L angry 3
这是可重现的数据:
df<- data.frame(id = c(1, 1, 1, 2, 2, 2, 3, 3, 3),
samediff = c("S", "S", "S", "D", "D", "D", "D", "D", "D"),
gainloss = c("G", "G", "G", "G", "G", "G", "L", "L", "L"),
factor = c("happy", "sad", "angry", "happy", "sad", "angry", "happy", "sad", "angry"),
value = c(5, 3, 4, 2, 3, 5, 1, 4, 3))
我想创建一系列交互图。到目前为止,我已经通过以下方式传播数据来创建交互图:
id samediff gainloss happy sad angry
1 S G 5 3 4
2 D G 2 3 5
3 D L 1 4 3
然后我使用以下函数:
interaction.plot(df$samediff, df$gainloss, df$happy)
有没有办法同时为每个因素创建单独的交互图?在我的实际数据集中,我有比这里列出的 3 个更多的因素(快乐、悲伤、愤怒),所以知道是否有办法有效地生成这些因素对我很有用。
使用此处的示例,我还需要在interaction.plot 函数中的最后一项是df$sad 和df$angry 的绘图。 interaction.plot 函数中的前两项可以保持不变。
【问题讨论】:
-
请通过在代码中创建数据集或使用
dput()来使您的示例可重现 -
df%>% spread(factor,value)%>% {map2(list(.[2:3]),(.[,-(1:3)]),~cbind(.x,.y)%>% set_names(c("x.factor","trace.factor","response"))%>% invoke(interaction.plot,.))}?
标签: r plot tidyr tidyverse interaction