> Hi Tom, > > thanks for your reply. > > Yes, that's exactly what I am looking for. I did not know about the automatic > type conversion in R. > > #-- 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" > ) > > #-- Proposal: works! > as.numeric(with(ds_example,paste(1,year2013,year2014,year2015,sep=''))) > > # I store my know-how about R in functions for later use. > > #--ยด Putting it in a function - does not work! > t_make_binary_vector <- function(dataset, > input_variables, > output_variable = "binary_vector") { > dataset[output_variable] <- "1" > print(dataset[output_variable]) > > for (variable in input_variables) { > print(variable) > dataset[output_variable] <- paste(dataset[output_variable], > dataset[variable], > sep='') > } > > # print(dataset[output_variable]) > > dataset[output_variable] <- as.integer(dataset[output_variable]) > > return(dataset) > } > > t_make_binary_vector(dataset = ds_example, > input_variables = c("year2013", "year2014", "year2015"), > output_variable = "binary_vector") > > > #-- Doesn't work either. > t_make_binary_vector <- function(dataset, > input_variables, > output_variable = "binary_vector") { > dataset[output_variable] <- as.integer(paste(1, dataset[ , > input_variables], sep = '')) > > return(dataset) > } > > t_make_binary_vector(dataset = ds_example, > input_variables = c("year2013", "year2014", "year2015"), > output_variable = "binary_vector") > > #-- cut -- > > Why is R taking the parameter value itself to paste it together instead of > referencing the variable within the dataset? > > What did I get wrong about R? How can I fix it? > > Kind regards > > Georg > > > > Gesendet: Donnerstag, 16. Juni 2016 um 16:13 Uhr > > Von: "Tom Wright" <t...@maladmin.com> > > An: g.maub...@weinwolf.de > > Cc: "R. Help" <r-help@r-project.org> > > Betreff: Re: [R] Building a binary vector out of dichotomous variables > > > > 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.maub...@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@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. > > > > ______________________________________________ > > R-help@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. > >
______________________________________________ R-help@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.