【发布时间】:2020-07-27 23:28:58
【问题描述】:
我有一个矩阵列表。所有列表具有相同数量的矩阵,所有矩阵具有相同的列数,并且列表中的所有矩阵具有相同的行数,但是,不同列表的矩阵之间的行数不同。我尝试在下面重新创建一个小示例数据集
set.seed(100)
biglist <- list(
a=list(foo=matrix(sample(1:10,30,replace=TRUE),ncol=3 ),
bar=matrix(sample(1:10,30,replace=TRUE),ncol=3),
puppy=matrix(sample(1:10,30,replace=TRUE),ncol=3)
),
b=list(foo=matrix(sample(1:10,24,replace=TRUE),ncol=3),
bar=matrix(sample(1:10,24,replace=TRUE),ncol=3),
puppy=matrix(sample(1:10,24,replace=TRUE),ncol=3)
)
)
我正在尝试为每个矩阵创建一个箱线图,其中列是同一图上的不同箱线图。我可以为单个矩阵执行此操作,但我无法将其应用于整个列表列表。
这是我为单个箱线图编写的代码
yoptions=c('foo','bar','puppy')
mynames=c('first','second','third')
titleoptions=c('a','b')
plotdata=biglist$a$foo
colnames(plotdata)=mynames
afoo=ggplot(melt(as.data.table(plotdata)),aes(x=variable,y=value))+
geom_boxplot()+ggtitle(paste(mynames[1],titleoptions[1],sep=" "))+
ylab(paste(yoptions[1]))
这给了我想要的列表 a 中的 foo 矩阵。我现在希望能够将其应用于列表中的每个矩阵,更改绘图数据、标题和标签以匹配列表中的相应矩阵,然后将其保存到组合列表和矩阵的变量中。这将导致以下变量,所有变量都附有不同的图: 阿福 一间酒吧 小狗 bfoo 巴巴 双鱼座
我知道它不太像 r,但我的第一个想法是某种嵌套的 for 循环,尽管我不确定在这种情况下它会如何工作。我知道 lapply 用于列表,并且我已经对嵌套的 lapplys(lapplies?)进行了一些研究,但我不确定如何让它生成与我想要生成的数字相对应的多个变量。
非常感谢任何建议!谢谢!
【问题讨论】:
标签: r list for-loop nested lapply