[Rd] inconsistent behaviour of c(...)

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Fri Jul 19 12:58:59 CEST 2019


I forgot there is also ?mode.


mode(c(1,"2")) # "character"
mode(d.f$C)    # "numeric" (not "integer")


Rui Barradas

Às 11:54 de 19/07/19, Rui Barradas escreveu:
> Hello,
> 
> A way to see this is with ?class
> 
> # OP's code
> typeof(c(1,"2")) # "character"
> 
> d.f <- data.frame(C=c(1,"2"))
> typeof(d.f$C)    # "integer"
> 
> # And check the objects' classes
> class(c(1,"2")) # "character"
> class(d.f$C)    # "factor"
> 
> 
> Hope this helps,
> 
> Rui Barradas
> 
> 
> Às 08:19 de 19/07/19, Peter Langfelder escreveu:
>> I think your character vector got converted to a factor. See ?options,
>> section stringsAsFactors:
>>
>>       ‘stringsAsFactors’: The default setting for arguments of
>>            ‘data.frame’ and ‘read.table’.
>> The default is TRUE, so strings get converted to factors when building
>> data frames.
>>
>> Set options(stringsAsFactors=FALSE) and try again.
>>
>> Peter
>>
>> On Fri, Jul 19, 2019 at 12:15 AM Michael Meyer via R-devel
>> <r-devel using r-project.org> wrote:
>>>
>>>
>>>
>>> Greetings,
>>>
>>> Running R 3.5.0 under Windows 7
>>>
>>> typeof(c(1,"2")) yields "character" as expected. But in
>>>
>>> d.f <- data.frame(C=c(1,"2"))
>>>
>>> typeof(d.f$C) yields "integer".
>>>
>>> Is this a bug?
>>>
>>> Michael Meyer
>>>
>>> ______________________________________________
>>> R-devel using r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>> ______________________________________________
>> R-devel using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
> 
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list