我试图找到分析模拟数据的最简单方法。我的输出“a”看起来像这样,typeof(a)="list"
来自class(a)="matrix"
:
> a
Variable Trial Bgraph Afgraph Mlog
[1,] 0.2 1 List,9 List,9 List,4
[2,] 0.2 2 List,9 List,9 List,4
[3,] 0.2 3 List,9 List,9 List,4
[4,] 0.3 1 List,9 List,9 List,4
[5,] 0.3 2 List,9 List,9 List,4
[6,] 0.3 3 List,9 List,9 List,4
其中“a”是列表矩阵,“Variable”是变量的值,“Trial”是试验编号。对于该值,“Bgraph”和“Afgraph”是图形对象。它们是单个图形对象class(a[[1,4]])="igraph"
;R 将它们存储为 9 个项目的列表。最后“Mlog”是包含 4 个不同维度的矩阵的主日志。我想将这些对象传递给不同的函数并找到平均值。
为了简单起见,我用更简单的函数替换了我的函数:
Q.1使用 plyr,我想获得每个变量的平均试验边数。我最好的尝试给了我以下个人边数:
ldply(a[,4],function(inp){mean(ecount(inp))})
Q.2我也尝试过使用 data.table 包的“by”,但不能将列表作为 data.table 的键。如果我将“a”保留为数组,我会丢失 igraph 对象的类。
require(igraph); graph<- erdos.renyi.game(10, .4, "gnp")
将创建一些 igraph 对象。ecount(graph)
是计数边的内置函数。
谢谢您的帮助。:)