[R] avoiding eval parse with indexing
Martin Ivanov
tramni at abv.bg
Sun May 26 18:26:46 CEST 2013
Dear Arun,
Thank You very much, your suggestion also works and seems to also be more convenient.
I think though, that Mr Gunter's suggestion should be more efficient, as it uses directly the Extract operator.
Thank You all very much for Your responsiveness. R does have a wonderful community!
Best regards,
Martin
>-------- Оригинално писмо --------
>От: arun
>Относно: Re: [R] avoiding eval parse with indexing
>До: Martin Ivanov
>Изпратено на: Неделя, 2013, Май 26 18:48:33 EEST
>
>
>Hi,
>You could use:
>library(abind)
>#using Berend's and Bert's example
>x1 <- array(runif(9),dim=c(3,3))
>x2 <- array(runif(8),dim=c(2,2,2))
>z <- array(1:24,dim=2:4)
>#applying your code:
> eval(parse(text=paste0("x1[1",paste(rep(",",length(dim(x1))-1),collapse=""),"]")))
>#[1] 0.6439062 0.7139397 0.6017418
>eval(parse(text=paste0("x2[1",paste(rep(",",length(dim(x2))-1),collapse=""),"]")))
># [,1] [,2]
>#[1,] 0.026671344 0.2116831
>#[2,] 0.003903368 0.1551140
>eval(parse(text=paste0("z[1",paste(rep(",",length(dim(z))-1),collapse=""),"]")))
># [,1] [,2] [,3] [,4]
>#[1,] 1 7 13 19
>#[2,] 3 9 15 21
>#[3,] 5 11 17 23
>
> asub(x1,1,1,drop=TRUE)
>#[1] 0.6439062 0.7139397 0.6017418
> asub(x2,1,1,drop=TRUE)
># [,1] [,2]
>#[1,] 0.026671344 0.2116831
>#[2,] 0.003903368 0.1551140
> asub(z,1,1,drop=TRUE)
># [,1] [,2] [,3] [,4]
>#[1,] 1 7 13 19
>#[2,] 3 9 15 21
>#[3,] 5 11 17 23
>A.K.
>
>
>
>----- Original Message -----
>From: Martin Ivanov
>To: r-help at r-project.org
>Cc:
>Sent: Sunday, May 26, 2013 9:56 AM
>Subject: [R] avoiding eval parse with indexing
>
>Hello,
>I would like to get an advice on how the notorious eval(parse()) construct could possibly
>be avoided in the following example. I have an array x, which can have different number of dimensions,
>but I am only interested in extracting, say, the first element of the first dimension. Currently I achieve this
>in this way:
>
>eval(parse(text=paste0("x[1", paste(rep(", ", length(dim(x)) - 1), collapse=""), "]")))
>
>Is it possible to avoid the eval parse here? How?
>
>Best regards,
>
>Martin
>
>______________________________________________
>R-help at r-project.org mailing list
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.
>
>
More information about the R-help
mailing list