[R] how to combine multiple indicator variables in a single factor

Frank E Harrell Jr f.harrell at vanderbilt.edu
Sat Dec 19 00:26:21 CET 2009


You might also look at the Hmisc package's score.binary function.
Frank

Daniel Nordlund wrote:
> Thanks to Ehud Cohen and William Dunlap for their assistance.  Both solutions worked and were helpful.
> 
> Dan
> 
> Daniel Nordlund
> Bothell, WA USA
> 
>> -----Original Message-----
>> From: ehud cohen [mailto:ehudco.list at gmail.com]
>> Sent: Friday, December 18, 2009 1:05 PM
>> To: Daniel Nordlund
>> Cc: r-help at r-project.org
>> Subject: Re: [R] how to combine multiple indicator variables in a single
>> factor
>>
>> you can try:
>>
>> df$f<-names(df)[apply(df,1,function(x) which(x==1))]
>>
>> Ehud
>>
>> On Fri, Dec 18, 2009 at 10:48 PM, Daniel Nordlund
>> <djnordlund at verizon.net> wrote:
>>> Say I have a dataframe like this:
>>>
>>> df <- data.frame(cbind(c(1,0,0,1),c(0,1,0,0),c(0,0,1,0)))
>>>
>>> names(df) <- c('a','b','c')
>>>
>>> I would like to create a factor in a new column, where the factor values
>> are taken from the column names, like this:
>>>> df2
>>>  a b c f
>>> 1 1 0 0 a
>>> 2 0 1 0 b
>>> 3 0 0 1 c
>>> 4 1 0 0 a
>>>
>>> How would I do this?  Thanks,
>>>
>>> Dan
>>>
>>> Daniel Nordlund
>>> Bothell, WA USA
>
-- 
Frank E Harrell Jr   Professor and Chair           School of Medicine
                      Department of Biostatistics   Vanderbilt University




More information about the R-help mailing list