Thanks everyone for their solutions. My problem is solved.
Sent from my iPhone
> On Jan 27, 2023, at 12:17 AM, Andrew Simmons wrote:
>
> I would use replicate() to do an operation with random numbers repeatedly:
>
> ```
> mysim <- replicate(10, {
>two.mat <- matrix(rnorm(4), 2, 2)
>f
I would use replicate() to do an operation with random numbers repeatedly:
```
mysim <- replicate(10, {
two.mat <- matrix(rnorm(4), 2, 2)
four.mat <- matrix(rnorm(16), 4, 4)
list(two.mat = two.mat, four.mat = four.mat)
})
```
which should give you a matrix-list. You can slice this mat
Elegance is in the eyes of the beholder...
extractor <- function( simlist, sim_name ) {
do.call(
cbind
, lapply(
simlist
, function( r ) r[[ sim_name ]]
)
)
}
extractor( mysim, "two.mat" )
... but using do.call will be much more memory efficient than successive cbind
oper
Is this what you want:
## This cbinds all the 2 matrix components of mysim
## producing a 2 x 20 matrix
do.call(cbind,lapply(mysim,`[[`,1))
## Change the 1 to a 2 to cbind the other components.
Cheers,
Bert
Tha
On Thu, Jan 26, 2023 at 7:33 PM Naresh Gurbuxani <
naresh_gurbux...@hotmail.com> wr
>
> I am looking for a more elegant way to write below code.
>
> #Simulation results have different dimensions
> mysim <- lapply(1:10, function(y) {
>two.mat <- matrix(rnorm(4), nrow = 2)
>four.mat <- matrix(rnorm(16), nrow = 4)
>list(two.mat = two.mat, four.mat = four.mat) #results w
5 matches
Mail list logo