[R] convert data frame: two variables into _one_ binary variable
Liviu Andronic
landronimirc at gmail.com
Tue Nov 26 12:41:36 CET 2013
Dear all,
Thank you so much for all the replies.
The following worked exactly as needed:
> library("HSAUR2", lib.loc="/home/liv/R/i686-pc-linux-gnu-library/3.0")
> library("reshape2", lib.loc="/usr/local/lib/R/site-library")
> data(womensrole)
> zzz <- melt(womensrole,id.var=c("education","gender"))
> zzzz <- zzz[rep(1:nrow(zzz), zzz$value), 1:4 ]
> zzzz$agree <- zzzz$variable == 'agree'
> zzzz[ zzzz$education %in% 0:1, ]
education gender variable value agree
1 0 Male agree 4 TRUE
1.1 0 Male agree 4 TRUE
1.2 0 Male agree 4 TRUE
1.3 0 Male agree 4 TRUE
2 1 Male agree 2 TRUE
2.1 1 Male agree 2 TRUE
22 0 Female agree 4 TRUE
22.1 0 Female agree 4 TRUE
22.2 0 Female agree 4 TRUE
22.3 0 Female agree 4 TRUE
23 1 Female agree 1 TRUE
43 0 Male disagree 2 FALSE
43.1 0 Male disagree 2 FALSE
64 0 Female disagree 2 FALSE
64.1 0 Female disagree 2 FALSE
Regards,
Liviu
On Mon, Nov 25, 2013 at 8:26 PM, Thomas Stewart
<tgs.public.mail at gmail.com> wrote:
> I do not think Carl's solution answers your question. Try this:
>
> z <- textConnection(
> "education gender agree disagree sexe
> 1 0 Male 4 2 0
> 2 1 Male 2 0 0
> 3 2 Male 4 0 0
> 4 3 Male 6 3 0
> 5 4 Male 5 5 0
> 6 5 Male 13 7 0"
> )
>
> zz <- read.table(z,header=TRUE, stringsAsFactors=FALSE);
> close(z)
>
> zzz <- melt(zz,id.var=c("education","gender","sexe"))
> zzzz <- zzz[rep(1:nrow(zzz), zzz$value), 1:4 ]
> zzzz$agree <- zzzz$variable == 'agree'
>
> zzzz
>
> -tgs
>
>
> On Mon, Nov 25, 2013 at 4:24 AM, Liviu Andronic <landronimirc at gmail.com>
> wrote:
>>
>> Dear all,
>> I am trying to convert the following data frame into a format more
>> useful for me:
>> > library("HSAUR2", lib.loc="C:/Program Files/R/R-3.0.2/library")
>> Loading required package: tools
>>
>> Attaching package: ‘HSAUR2’
>>
>> The following object is masked _by_ ‘.GlobalEnv’:
>>
>> womensrole
>>
>> > head(womensrole)
>> education gender agree disagree sexe
>> 1 0 Male 4 2 0
>> 2 1 Male 2 0 0
>> 3 2 Male 4 0 0
>> 4 3 Male 6 3 0
>> 5 4 Male 5 5 0
>> 6 5 Male 13 7 0
>>
>>
>> In 'womensrole', how do I convert 'agree' and 'disagree' variables
>> into one proper binary variable, say:
>> education gender agree sexe
>> 1 0 Male TRUE 0
>> 2 0 Male TRUE 0
>> 3 0 Male TRUE 0
>> 4 0 Male TRUE 0
>> 5 0 Male FALSE 0
>> 6 0 Male FALSE 0
>> 7 1 Male TRUE 0
>> 8 1 Male TRUE 0
>> 9 2 Male TRUE 0
>> 10 2 Male TRUE 0
>> 11 2 Male TRUE 0
>> 12 2 Male TRUE 0
>> [..]
>>
>> I'm sure there is an easy way to do this (in the form of 'melt',
>> 'cast', etc.), but I'm not sure how to approach the problem.
>>
>> Regards,
>> Liviu
>>
>> --
>> Do you know how to read?
>> http://www.alienetworks.com/srtest.cfm
>> http://goodies.xfce.org/projects/applications/xfce4-dict#speed-reader
>> Do you know how to write?
>> http://garbl.home.comcast.net/~garbl/stylemanual/e.htm#e-mail
>>
>> ______________________________________________
>> 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.
>
>
--
Do you know how to read?
http://www.alienetworks.com/srtest.cfm
http://goodies.xfce.org/projects/applications/xfce4-dict#speed-reader
Do you know how to write?
http://garbl.home.comcast.net/~garbl/stylemanual/e.htm#e-mail
More information about the R-help
mailing list