我正在使用
sapply()
用我自己的函数生成30个随机行走模拟
levy.walk.flights()
.
simmulations=30
granMAT <- sapply(1:simmulations, function(i){
a <- levy.walk.flights()[[1]]
cbind(a,rep(i, length(a[,1])))
})
对象
a
接收
data.frame
具有2列:x,y;加上在下一行代码中cbinded的ID列。
这段代码工作得很好,可以生成所有30个模拟。唯一的问题是
蓝宝石()
返回30*3(90)个数组的列表。参见
str(granMAT)
有3个模拟。
List of 9
$ : num [1:5748] 0 0.00357 0.0074 0.01071 0.01418 ...
$ : num [1:5748] 0 0.135 0.28 0.406 0.537 ...
$ : int [1:5748] 1 1 1 1 1 1 1 1 1 1 ...
$ : num [1:2434] 0 -0.131 -0.261 -0.385 -0.527 ...
$ : num [1:2434] 0 -0.048 -0.0955 -0.1412 -0.1933 ...
$ : int [1:2434] 2 2 2 2 2 2 2 2 2 2 ...
$ : num [1:2301] 0 -0.0887 -0.1829 -0.276 -0.364 ...
$ : num [1:2301] 0 0.0941 0.1939 0.2927 0.386 ...
$ : int [1:2301] 3 3 3 3 3 3 3 3 3 3 ...
- attr(*, "dim")= int [1:2] 3 3
- attr(*, "dimnames")=List of 2
..$ : chr [1:3] "x" "y" "rep(i, length(a[, 1]))"
..$ : NULL`
我想要
蓝宝石()
返回
数据帧
具有3列:x、y、ID。所有数据都位于这3列之下。我试过了
do.call()
还有几个
library(plyr)
函数,但我无法确定哪个函数允许我这样做。
谢谢你的帮助!