[R] Building a binary vector out of dichotomous variables

Tom Wright tom at maladmin.com
Thu Jun 16 16:13:25 CEST 2016


Does this do what you want?

as.numeric(with(ds_example,paste(1,year2013,year2014,year2015,sep='')))

On Thu, Jun 16, 2016 at 8:57 AM,  <G.Maubach at weinwolf.de> wrote:
> Hi All,
>
> I need to build a binary vector made of a set of dichotomous variables.
>
> What I have so far is:
>
> -- cut --
>
> ds_example <-
>   structure(
>     list(
>       year2013 = c(0, 0, 0, 1, 1, 1, 1, 0),
>       year2014 = c(0,
>                    0, 1, 1, 0, 0, 1, 1),
>       year2015 = c(0, 1, 1, 1, 0, 1, 0, 0)
>     ),
>     .Names = c("year2013",
>                "year2014", "year2015"),
>     row.names = c(NA, 8L),
>     class = "data.frame"
>   )
>
> attach(ds_example)
> base <- 1000
> binary_vector <- base + year2013 * 100 + year2014 * 10 + year2015
> detach(ds_example)
>
> binary_vector
>
> ds_example <- cbind(ds_example, binary_vector)
>
> varlist <- c("year2013", "year2014", "year2015")
>
> base <- 10^length(varlist)
>
> binary_vector <- NULL
>
> for (i in 1:3) {
>   binary_vector <-
>    base +
>    ds_example [[varlist[i]]] * base / (10 ^ i)
> }
>
> ds_example <- cbind(ds_example, binary_vector)
>
> message("Wrong result!")
> ds_example
>
> -- cut --
>
> How do I get vectors like  1000 1001 1011 1111 1100 1101 1110 1010 for
> each case?
>
> Is there a better approach than mine?
>
> Kind regards
>
> Georg
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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