[R] How to fill out some columns?

Gabor Grothendieck ggrothendieck at gmail.com
Sat Apr 12 00:05:29 CEST 2008


Try this:

  as.matrix(replace(as.data.frame(0 * dx), colnames(dy), dy))

If dx were a data frame already we could eliminate as.data.frame
and as.matrix so it would reduce to, in that case:

  replace(0 * dx, colnames(dy), dy)) # only if dx is data.frame


On Fri, Apr 11, 2008 at 5:36 PM, Jorge Velez <jorgeivanvelez at gmail.com> wrote:
> Dear R users,
>
> I'm working with 2 data sets which look like (for example) dx and dy in the
> next code:
>
> # Seed
> set.seed(4)
>
> # First data frame
> dx=matrix(rnorm(6*5),ncol=6)
> colnames(dx)=LETTERS[1:6]
>
> # Second data frame
> dy=matrix(rnorm(3*5),ncol=3)
> colnames(dy)=c('A','C','E')
>
>
> As you will notice, some columns in both data sets have the same names. At
> the end, what I need is something like:
>
>
> > res
>              A B          C D          E F
> [1,]  0.1534642 0 -0.4045198 0  1.3437086 0
> [2,]  1.0519326 0 -0.2274054 0  0.1815354 0
> [3,] -0.7542112 0  0.9340962 0  1.2925123 0
> [4,] -1.4821891 0 -0.4658959 0 -1.6880486 0
> [5,]  0.8611319 0 -0.6375435 0 -0.8209936 0
>
>
> where  columns "A", "C" and "E" are the dy columns and columns "B" and "D"
> are zeros because, when we compare dx and dy, they are not present. Any
> suggestion would be greatly appreciated.
>
> Thanks in advance,
>
>
> Jorge
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> 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