我的目标是使用 lapply 或类似地 mapply 将列表作为参数传递给函数 geom_point2。在类似的情况下,我成功地将一个列表(或多个列表)传递给 geom_cladelabel,如下所示:
mapply(function (x,y,z,w,v,u,t,s) geom_cladelabel(node=x, label=y,
align=F, etc. # Where x y z etc are lists.
问题与 aes
内部geom_point2的使用有关。(不在 geom_cladelabel 中):
在 geom_point2 的情况下,节点信息在里面aes
,我做不到。通常我没有收到任何错误消息,但它不起作用。
目标是使这个例子工作,但使用 mapply 而不是写geom_point2
两次。
# source("https://bioconductor.org/biocLite.R")
# biocLite("ggtree")
library(ggtree)
library(ape)
#standard code
newstree<-rtree(10)
node1<-getMRCA(newstree,c(1,2))
node2<-getMRCA(newstree,c(3,4))
ggtree(newstree)+
geom_point2(aes(subset=(node ==node1) ), fill="black", size=3, shape=23)+
geom_point2(aes(subset=(node ==node2) ), fill="green", size=3, shape=23)
#desire to substitute the geom_point2 layers with mapply or lapply:
#lapply(c(node1,node2), function (x) geom_point2(aes(subset=(node=x)))))