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

David Carlson dcarlson at tamu.edu
Mon Nov 25 18:59:55 CET 2013


I think the OP was looking to expand the data frame so that each row was a single observation so that the first row becomes 6 rows, 4-TRUE and 2-FALSE. Something like this

> womensrole <- HSAUR::womensrole
> step1 <- reshape(womensrole, varying=c("agree", "disagree"), 
+   v.names="Freq", timevar="Agree", times=c(TRUE, FALSE), 
+   direction="long")
> step1 <- step1[order(step1$id),]
> rownames(step1) <- NULL # Simplify the row names
> step2 <- step1[rep(rownames(step1), step1$Freq), c(5, 1:3)]
> rownames(step2) <- NULL # Simplify the row names
> head(step2, 12)
   id education  sex Agree
1   1         0 Male  TRUE
2   1         0 Male  TRUE
3   1         0 Male  TRUE
4   1         0 Male  TRUE
5   1         0 Male FALSE
6   1         0 Male FALSE
7   2         1 Male  TRUE
8   2         1 Male  TRUE
9   3         2 Male  TRUE
10  3         2 Male  TRUE
11  3         2 Male  TRUE
12  3         2 Male  TRUE

-------------------------------------
David L Carlson
Department of Anthropology
Texas A&M University
College Station, TX 77840-4352

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Carl Witthoft
Sent: Monday, November 25, 2013 11:14 AM
To: r-help at r-project.org
Subject: Re: [R] convert data frame: two variables into _one_ binary variable

In R,  as.logical() and other functions treat anything >0 as TRUE.  Thus:

Rgames> foo<-sample(0:5,10,rep=TRUE)
Rgames> foo
 [1] 0 5 1 0 1 5 2 5 4 5
Rgames> as.logical(foo)
 [1] FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE

For your case,  simply  (womensrole$agree>womensrole$disagree) will return
the logical vector you want.
Just for info,
In R,  as.logical() and other functions treat anything >0 as TRUE.  Thus:

Rgames> foo<-sample(0:5,10,rep=TRUE)
Rgames> foo
 [1] 0 5 1 0 1 5 2 5 4 5
Rgames> as.logical(foo)
 [1] FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE



Liviu Andronic 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@

>  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.





--
View this message in context: http://r.789695.n4.nabble.com/convert-data-frame-two-variables-into-one-binary-variable-tp4681098p4681123.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
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