You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中从列表生成向量并应用patchwork::area函数的实现方法

你之前的写法无法得到正确结果,是因为lapply返回的是普通列表,直接用c()拼接area对象和普通列表时,R不会将列表内的area元素拆解合并到布局向量中。

方案1:用do.call拆解列表拼接

将生成的areaList通过do.call传入c(),自动拆解列表内的所有area元素完成拼接:

design <- c(
  area(1, 1, maxVal, maxVal),
  do.call(c, areaList)
)

方案2:利用area的向量化特性(更简洁)

patchwork::area本身支持向量化参数,不需要循环生成列表,直接传入行号向量即可一次性生成所有右侧区域:

# 无需提前生成areaList,直接传向量参数
design <- c(
  area(1, 1, maxVal, maxVal),
  area(t = vals, l = maxVal + 1)
)

两种方案生成的design都和你手动编写的效果完全一致,调用plot(design)即可预览布局。

内容的提问来源于stack exchange,提问作者Electrino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 07:45:03