[R] convert data frame: two variables into _one_ binary variable

arun smartpink111 at yahoo.com
Mon Nov 25 15:45:28 CET 2013


Hi,
One way would be:

womensrole <- read.table(text="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",sep="",header=TRUE,stringsAsFactors=FALSE)
library(reshape2)
 res1 <- melt(womensrole,measure.vars=c("agree","disagree"),var="agree")
 res2 <- within(res1[rep(1:nrow(res1),res1$value),], agree <- agree=="agree")[,c(1,2,4,3)]
 res2New <- res2[order(res2$education),]
row.names(res2New) <- 1:nrow(res2New)

A.K.



On Monday, November 25, 2013 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.




More information about the R-help mailing list