1

对于这个问题,我正在尝试创建多个可以应用函数的向量。我使用的功能是patchwork::area.

例如,如果我要明确写出要使用的设计区域进行绘图,patchwork我会执行以下操作:

library(patchwork)

# Explicitly writing out each area
design <- c(
  area(1, 1, 9, 9),
  area(1,10),
  area(2,10),
  area(3,10),
  area(4,10),
  area(5,10),
  area(6,10),
  area(7,10),
  area(8,10),
  area(9,10)
)

# example of what the plot area would look like
plot(design)

这看起来像: 拼凑图示例

本质上,我正在尝试自动化design上面的向量。我通过使用lapply创建区域列表来尝试此操作,如下所示:

# create some data
vals = seq(1:9)
maxVal <- max(vals)

# use lapply 
areaList <- lapply(vals, function(x) area(x, maxVal+1))

这会创建一个区域列表,不包括design上面对象的第一行......但我不知道如何将它变成design上面的对象。

一个天真的尝试(不起作用)是做类似下面的代码的事情(它试图包括design对象的第一行)

designTest <- c(area(1, 1, maxVal, maxVal), 
                areaList)

关于我如何实现这一目标的任何建议?

4

1 回答 1

1

您需要areaList在绘图之前组合这样的元素:

library(patchwork)
library(purrr)

vals = seq(1:9)
maxVal <- max(vals)

areaList <- lapply(vals, function(x) area(x, maxVal+1))
a <- reduce(areaList, c)

plot(a)

这应该工作!

于 2021-11-07T18:51:56.730 回答