[Rd] Unexpected behavior of '[' in an apply instruction
Rui Barradas
ru|pb@rr@d@@ @end|ng |rom @@po@pt
Fri Feb 12 22:23:38 CET 2021
Hello,
Yes, although there is an accepted solution, I believe you should post
this solution there. It's a base R solution, what the question asks for.
And thanks, I would have never reminded myself of slice.index.
Rui Barradas
Às 20:45 de 12/02/21, robin hankin escreveu:
> Rui
>
> > x <- array(runif(60), dim = c(10, 2, 3))
> > array(x[slice.index(x,1) %in% 1:5],c(5,dim(x)[-1]))
>
> (I don't see this on stackoverflow; should I post this there too?) Most
> of the magic package is devoted to handling arrays of arbitrary
> dimensions and this functionality might be good to include if anyone
> would find it useful.
>
> HTH
>
> Robin
>
>
> <mailto:hankin.robin using gmail.com>
>
>
> On Sat, Feb 13, 2021 at 12:26 AM Rui Barradas <ruipbarradas using sapo.pt
> <mailto:ruipbarradas using sapo.pt>> wrote:
>
> Hello,
>
> This came up in this StackOverflow post [1].
>
> If x is an array with n dimensions, how to subset by just one dimension?
> If n is known, it's simple, add the required number of commas in their
> proper places.
> But what if the user doesn't know the value of n?
>
> The example below has n = 3, and subsets by the 1st dim. The apply loop
> solves the problem as expected but note that the index i has
> length(i) > 1.
>
>
> x <- array(1:60, dim = c(10, 2, 3))
>
> d <- 1L
> i <- 1:5
> apply(x, MARGIN = -d, '[', i)
> x[i, , ]
>
>
> If length(i) == 1, argument drop = FALSE doesn't work as I expected it
> to work, only the other way does:
>
>
> i <- 1L
> apply(x, MARGIN = -d, '[', i, drop = FALSE)
> x[i, , drop = FALSE]
>
>
> What am I missing?
>
> [1]
> https://stackoverflow.com/questions/66168564/is-there-a-native-r-syntax-to-extract-rows-of-an-array
>
> Thanks in advance,
>
> Rui Barradas
>
> ______________________________________________
> R-devel using r-project.org <mailto:R-devel using r-project.org> mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
More information about the R-devel
mailing list