[R] FW: variable format
Martin Becker
martin.becker at mx.uni-saarland.de
Sat Sep 8 11:16:44 CEST 2007
Frank E Harrell Jr wrote:
> Martin Becker wrote:
>> Dear Cory,
>>
>> I am not familiar with SAS, but is this what you are looking for?
>>
>> divisionTable <- matrix(c(1, "New England",
>> 2, "Middle Atlantic",
>> 3, "East North Central",
>> 4, "West North Central",
>> 5, "South Atlantic",
>> 6, "East South Central",
>> 7, "West South Central",
>> 8, "Mountain",
>> 9, "Pacific"),
>> ncol=2, byrow=T)
>
> How about just divisionTable <- c('New England', 'Middle Atlantic',
> ...) then factor(old, 1:9, divisionTable) ?
>
> Frank
>
Of course, this solution is more elegant, but my intention was
1. to provide a solution which makes use of the exisiting object
"divisionTable"
2. to reproduce the output from the working example (->conversion to
character)
Maybe I should have emphasized that I was quoting the existing
definition of divisionTable from the original email (for the sake of
providing self-contained code) and not introducing a unnecessarily
complicated new definition of divisionTable.
Regards,
Martin
>> a <- NULL
>> a$divisionOld <- c(0,1,2,3,4,5)
>> a$divisionNew <-
>> as.character(factor(a$divisionOld,levels=divisionTable[,1],labels=divisionTable[,2]))
>>
>> a$divisionNew
>>
>> [1] NA "New England" "Middle Atlantic" [4]
>> "East North Central" "West North Central" "South Atlantic"
>>
>> Kind regards,
>>
>> Martin
>>
>>
>> Cory Nissen schrieb:
>>>
>>> Anybody?
>>>
>>> ________________________________
>>>
>>> From: Cory Nissen
>>> Sent: Tue 9/4/2007 9:30 AM
>>> To: r-help at stat.math.ethz.ch
>>> Subject: variable format
>>>
>>>
>>> Okay, I want to do something similar to SAS proc format.
>>>
>>> I usually do this...
>>>
>>> a <- NULL
>>> a$divisionOld <- c(1,2,3,4,5)
>>> divisionTable <- matrix(c(1, "New England",
>>> 2, "Middle Atlantic",
>>> 3, "East North Central",
>>> 4, "West North Central",
>>> 5, "South Atlantic"),
>>> ncol=2, byrow=T)
>>> a$divisionNew[match(a$divisionOld, divisionTable[,1])] <-
>>> divisionTable[,2]
>>>
>>> But how do I handle the case where...
>>> a$divisionOld <- c(0,1,2,3,4,5) #no format available for 0, this
>>> throws an error.
>>> OR
>>> divisionTable <- matrix(c(1, "New England",
>>> 2, "Middle Atlantic",
>>> 3, "East North Central",
>>> 4, "West North Central",
>>> 5, "South Atlantic",
>>> 6, "East South Central",
>>> 7, "West South Central",
>>> 8, "Mountain",
>>> 9, "Pacific"),
>>> ncol=2, byrow=T) There are extra formats
>>> available... this throws a warning.
>>>
>>> Thanks
>>>
>>> Cory
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-help at stat.math.ethz.ch 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.
>>>
>>
>> ______________________________________________
>> R-help at stat.math.ethz.ch 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