1

有没有办法使用类似的结构

grid.arrange(
    ifelse(somecondition,graph1,graph2),
    ifelse(somecondition2,graph3,graph4),
    ncol=2
)

wheregraphX是一个情节(使用 创建ggplot2)或之前定义的一个 grob。它看起来像是在打印之前ifelse将对象评估grob为其他东西(数据框?),因此grid.arrange无法获得正确的输入以正常工作。

我还尝试将所有图形对象存储在一个集合中并在其中使用它,grid.arrange但无法获得适当的数据结构来很好地工作。

4

1 回答 1

0

使用if() ... else ...,不ifelse

p1 = qplot(1,1)
p2 = qplot(1,2)
p3 = qplot(1,3)
p4 = qplot(1,4)

grid.arrange(
    if(1 == 2) p1 else p2,
    if(3 == 3) p3 else p4,
    ncol=2
)

如果您想先将它们存储在列表中,

pl = list(if(1 == 2) p1 else p2, if(3 == 3) p3 else p4)
grid.arrange(grobs=pl, ncol=2)
于 2015-10-17T21:32:09.713 回答