Thank you so much, Bill and Arun!
Dimitri

On Wed, Mar 13, 2013 at 9:36 PM, arun <smartpink...@yahoo.com> wrote:

> HI,
> Try this:
>  mydf1<- mydf
>  mydf1[]<-lapply(1:3,function(i) {mydf[which(i== myindex),i]<-1; mydf[,i]})
>  mydf1
> #  c1 c2 c3
> #1  1 NA NA
> #2 NA  1 NA
> #3 NA NA  1
> #4 NA  1 NA
> #5  1 NA NA
>
>
>  identical(mydf1,mygoal)
> #[1] TRUE
> A.K.
>
>
>
> ----- Original Message -----
> From: Dimitri Liakhovitski <dimitri.liakhovit...@gmail.com>
> To: r-help <r-help@r-project.org>
> Cc:
> Sent: Wednesday, March 13, 2013 8:10 PM
> Subject: [R] Modifying a data frame based on a vector that contains column
> numbers
>
>  Hello!
>
> # I have a data frame:
> mydf<-data.frame(c1=rep(NA,5),c2=rep(NA,5),c3=rep(NA,5))
>
> # I have an index whose length is always the same as nrow(mydf):
> myindex<-c(1,2,3,2,1)
>
> # I need c1 to have 1s in rows 1 and 5 (based on the information in
> myindex)
> # I need c2 to have 1s in rows 2 and 4 (also based on myindex)
> # I need c3 to have 1 in row 3
> # In other words, I am trying to achieve this result:
>
> mygoal<-data.frame(c1=c(1,NA,NA,NA,1),c2=c(NA,1,NA,1,NA),c3=c(NA,NA,1,NA,NA))
>
> I know how to do it with a loop that runs through rows of mydf.
> However, in real life I have a huge data frame with tons of rows, dozens of
> columns (instead of 3 in this example) - I am afraid it'll take forever.
> Any hint on how to do it faster, maybe using subindexing somehow?
>
> Thank you very much!
>
> --
> Dimitri Liakhovitski
>
>      [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@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<http://www.r-project.org/posting-guide.html>
> and provide commented, minimal, self-contained, reproducible code.
>
>


-- 
Dimitri Liakhovitski

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to