[R] cbind in data.frame

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Aug 25 09:18:04 CEST 2008


I think the issue is that cbind applied to a vector or matrix drops 
classes.

It seems that data.frame() should have been used to combine columns here.

On Mon, 25 Aug 2008, Charles Plessy wrote:

> Le Sun, Aug 24, 2008 at 10:56:43PM -0700, Yuan Jian a écrit :
>> hi,
>> when I used cbind to combine columns, some contents of columns has been replaced by
>> number. in the script below, column should be aaa,bbb,ccc but I was given 1,2,3.
>> but when I change the column to vector, it gave me correct contents. can you please
>> tell me why?
>> ?
>>> d<-read.table("aaa.txt")
>
> Hello,
>
> read.table converts characters to factors. Factors will be converted
> to numbers by cbind, as in the following example:
>
>> toto <- c("aaa","bbb","aaa")
>> toto
> [1] "aaa" "bbb" "aaa"
>> as.factor(toto)
> [1] aaa bbb aaa
> Levels: aaa bbb
>> cbind(as.factor(toto))
>     [,1]
> [1,]    1
> [2,]    2
> [3,]    1
>
> The 'as.is' or 'colClasses' option of read.table will help you to 
> prevent the conversion of characters to factors.
>
> Have a nice day,
>
> -- 
> Charles Plessy
> http://charles.plessy.org
> Tsurumi, Kanagawa, Japan
>
> ______________________________________________
> 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.
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


More information about the R-help mailing list