[R] Assignment of values with different indexes
Brian Feeny
bfeeny at mac.com
Thu Dec 6 06:44:18 CET 2012
No, because it does not assign the indexes of myindex.
If its not possible, which I am assuming its not, thats OK. I thought that if I had say 10 observations, sequentially ordered (or any order, it doesn't matter), and I wanted to assign them specific indexes, and not have NA's, that it was possible.
I am OK with knowing that I can assign them the specific indexes, and that there will be empty spots, which are marked NA. Most functions I would need to use can handle NA's by telling the function to ignore. I appreciate all the help that has been given.
Brian
On Dec 5, 2012, at 11:49 PM, arun <smartpink111 at yahoo.com> wrote:
>
>
> Hi,
>
> Would it be okay to use:
> y<-na.omit(y[myindex]<-x)
> y
> # [1] -1.36025132 -0.57529211 1.18132359 0.41038489 1.83108252 -0.03563686
> #[7] 1.25267314 1.08311857 1.56973422 -0.30752939
>
> A.K.
>
>
> ----- Original Message -----
> From: Brian Feeny <bfeeny at mac.com>
> To: "r-help at r-project.org help" <r-help at r-project.org>
> Cc:
> Sent: Wednesday, December 5, 2012 9:47 PM
> Subject: [R] Assignment of values with different indexes
>
>
> I would like to take the values of observations and map them to a new index. I am not sure how to accomplish this. The result would look like so:
>
> x[1,2,3,4,5,6,7,8,9,10]
> becomes
> y[2,4,6,8,10,12,14,16,18,20]
>
> The "newindex" would not necessarily be this sequence, but a sequence I have stored in a vector, so it could be all kinds of values. here is what happens:
>
>> x <- rnorm(10)
>> myindex <- seq(from = 1,to = 20, by = 2)
>> y <- numeric()
>> y[myindex] <- x
>> y
> [1] -0.03745988 NA -0.09078822 NA 0.92484413 NA 0.32057426 NA
> [9] 0.01536279 NA 0.02200198 NA 0.37535438 NA 1.46606535 NA
> [17] 1.44855796 NA -0.05048738
>
> So yes, it maps the values to my new indexes, but I have NA's. The result I want would look like this instead:
>
>
> [1] -0.03745988
> [3] -0.09078822
> [5] 0.92484413
> [7] 0.32057426
> [9] 0.01536279
> [11] 0.02200198
> [13] 0.37535438
> [15] 1.46606535
> [17] 1.44855796
> [19] -0.05048738
>
>
> and remove the NA's. I tried this with na.omit() on x, but it looks like so:
>
>> x <- rnorm(10)
>> myindex <- seq(from = 1,to = 20, by = 2)
>> y <- numeric()
>> y[myindex] <- na.omit(x)
>> y
> [1] 0.87399523 NA -0.39908184 NA 0.14583051 NA 0.01850755 NA
> [9] -0.47413632 NA 0.88410517 NA -1.64939190 NA 0.57650807 NA
> [17] 0.44016971 NA -0.56313802
>
> Brian
>
> ______________________________________________
> 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