[R] indexing??
Petr Savicky
savicky at cs.cas.cz
Tue Feb 28 20:24:05 CET 2012
On Tue, Feb 28, 2012 at 08:50:45AM -0800, helin_susam wrote:
> Dear Petr Pikal and Petr Savicky thank you for your replies..
>
> If the y vector contains different elements my algorithm gives this result;
> y <- c(1,2,3,4,5,6,7,8,9,10)
> x <- c(1,0,0,1,1,0,0,1,1,0)
>
> n <- length(x)
>
> t <- matrix(cbind(y,x), ncol=2)
>
> z = x+y
>
> for(j in 1:length(x)) {
> out <- vector("list", )
>
> for(i in 1:10) {
>
> t.s <- t[sample(n,n,replace=T),]
>
> y.s <- t.s[,1]
> x.s <- t.s[,2]
>
> z.s <- y.s+x.s
>
> out[[i]] <- list(ff <- (z.s), finding=any (y.s==y[j]))
> kk <- sapply(out, function(x) {x$finding})
> ff <- out[! kk]
> }
> }
>
> > kk
> [1] TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE
> > ff
> [[1]]
> [[1]][[1]]
> [1] 5 7 3 2 2 6 7 2 6 6
>
> [[1]]$finding
> [1] FALSE
>
>
> [[2]]
> [[2]][[1]]
> [1] 7 10 6 2 2 2 6 6 9 3
>
> [[2]]$finding
> [1] FALSE
>
> Here, the two situations are FALSE, that is 5th and 10th bootstrap
> re-samples do not contain one (or more) element(s) of original vector ("y").
Hi.
Your code generates a new list "out" for each j. This means
that you generate a list "out", test the presence of y[1]
in its components, then delete "out", replace it by a new
list and test the presence of y[2] in this new list, then
"out" is deleted and replaced by another "out", etc.
This is probably not, what you want. Is this correct?
Petr Savicky.
More information about the R-help
mailing list