假设我有两个 ggplot 美学:
a.1 <- aes(v.1=1, v.2=2)
a.2 <- aes(v.3=3)
有没有办法结合已经建立的美学?在我的示例中,它将类似于:
a.merged <- aes(v.1=2, v.2=2,v.3=3)
我知道 aes_string 可用于从可以连接的字符向量构建美学,但我正在研究已经构建了两种美学的情况,我想避免必须先将它们转换为字符。
假设我有两个 ggplot 美学:
a.1 <- aes(v.1=1, v.2=2)
a.2 <- aes(v.3=3)
有没有办法结合已经建立的美学?在我的示例中,它将类似于:
a.merged <- aes(v.1=2, v.2=2,v.3=3)
我知道 aes_string 可用于从可以连接的字符向量构建美学,但我正在研究已经构建了两种美学的情况,我想避免必须先将它们转换为字符。
> c(a.1,a.2)
$v.1
[1] 1
$v.2
[1] 2
$v.3
[1] 3
aes
对象是“未评估的表达式”,c()
函数按预期工作,具体取决于您对“预期”的定义。为了安全起见,您可能需要添加回被剥离的类c()
:
a.merged <- c(a.1,a.2)
class(a.merged) <- "uneval"
如果您想一步完成,则该函数modifyList
不会去除“名称”-less 属性:
> modifyList(a.1, a.2)
List of 3
$ v.1: num 1
$ v.2: num 2
$ v.3: num 3
> attributes(modifyList(a.1, a.2))
$names
[1] "v.1" "v.2" "v.3"
$class
[1] "uneval"