Hi:

On Thu, Jul 29, 2010 at 3:28 AM, pdb <philb@philbrierley.com> wrote:

>
> I've just tried to merge 2 data sets thinking they would only keep the
> common
> columns, but noticed the column count was not adding up. I've then
> replicated a simple example and got the same thing happening.
>
> q1. why doesn't 'b' have a column name?
>
> q2. when I merge, why does the new column 'y' have all values as 5.1?
>
> Thanks in advance,
>
> Mr. confused
>
>
> > a <- iris[,]
> > b <- iris[,1]
>

b is not a data frame - since it is only one column, by default it is
coerced into a numeric vector:

> class(b)
[1] "numeric"
> b
  [1] 5.1 4.9 4.7 4.6 5.0 5.4 ...

The way to keep b a data frame is to use the argument drop = FALSE, as in
> b2 <- iris[, 1, drop = FALSE]    # b2 is now a data frame
> dd <- merge(iris, b2)
> head(dd)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          4.3         3.0          1.1         0.1  setosa
2          4.4         2.9          1.4         0.2  setosa
3          4.4         2.9          1.4         0.2  setosa
4          4.4         2.9          1.4         0.2  setosa
5          4.4         3.0          1.3         0.2  setosa
6          4.4         3.0          1.3         0.2  setosa

HTH,
Dennis

>
> > head(a)
>  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
> 1          5.1         3.5          1.4         0.2  setosa
> 2          4.9         3.0          1.4         0.2  setosa
> 3          4.7         3.2          1.3         0.2  setosa
> 4          4.6         3.1          1.5         0.2  setosa
> 5          5.0         3.6          1.4         0.2  setosa
> 6          5.4         3.9          1.7         0.4  setosa
> > head(b)
> [1] 5.1 4.9 4.7 4.6 5.0 5.4
> >
> > c <-merge(a,b)
> > head(c)
>  Sepal.Length Sepal.Width Petal.Length Petal.Width Species   y
> 1          5.1         3.5          1.4         0.2  setosa 5.1
> 2          4.9         3.0          1.4         0.2  setosa 5.1
> 3          4.7         3.2          1.3         0.2  setosa 5.1
> 4          4.6         3.1          1.5         0.2  setosa 5.1
> 5          5.0         3.6          1.4         0.2  setosa 5.1
> 6          5.4         3.9          1.7         0.4  setosa 5.1
> >
> > NCOL(a)
> [1] 5
> > NCOL(b)
> [1] 1
> > NCOL(c)
> [1] 6
> >
>
> --
> View this message in context:
> http://r.789695.n4.nabble.com/where-did-the-column-names-go-to-tp2306267p2306267.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.
>

	[[alternative HTML version deleted]]

