> On Jul 7, 2017, at 7:03 PM, John Kane <jrkrid...@yahoo.ca> wrote:
> 
> Thanks Marc.
> It never occurred to me that I would need a ""stringsAsFactors" expression in 
> a data.frame.  I could have sworn I never did before when mocking up some 
> data but clearly I was wrong or there has been a change in R v. 3.4.1 which 
> seems unlikely.


Welcome John.

Going back to the old NEWS files, the 'stringsAsFactors' argument for 
data.frame() appears in version 2.4.0, which was released on 2006-10-03.

It is possible that somewhere along the way, you set options(stringsAsFactors = 
FALSE) in your .Rprofile, which would change the default behavior. I know that 
some folks do that, as they do not like the default coercion to factors, both 
for data.frame() and for the read.table() family.

Other alternatives would be to use the 'colClasses' argument to explicitly set 
such vectors to character, or to use I(...) to create AsIs class columns.

Regards,

Marc


> 
> 
> 
> On Friday, July 7, 2017, 10:37:29 AM EDT, Marc Schwartz 
> <marc_schwa...@me.com> wrote:
> 
> 
> 
> > On Jul 7, 2017, at 6:03 AM, John Kane via R-help <r-help@r-project.org> 
> > wrote:
> > 
> > This is not  serious problem but I just wonder if someone can explain what 
> > is happening.
> > The same command within a dataframe is giving me a factor and as a plain 
> > vector is giving me a character.  It's probably something simple that I 
> > have read and forgotten but I thought I'd ask.
> > Thanks
> > 
> > #================================================
> > dat1 <- data.frame(aa = letters[1:10])
> > str(dat1)
> > data.frame':    10 obs. of  1 variable:
> > $ aa....letters.1.10.: Factor w/ 10 levels "a","b","c","d",..: 1 2 3 4 5 6 
> > 7 8 9 10#=============================================================
> > bb = letters[1:10]
> > str(bb)
> > chr [1:10] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"
> > #==============================================================
> > 
> 
> 
> See the 'stringsAsFactors' argument in ?data.frame.
> 
> dat1 <- data.frame(aa = letters[1:10], stringsAsFactors = FALSE)
> 
> 
> > str(dat1)
> 'data.frame':    10 obs. of  1 variable:
> 
> $ aa: chr  "a" "b" "c" "d" ...
> 
> 
> Regards,
> 
> Marc Schwartz
> 

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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