I have this. I have modified your input structure to be a matrix. I think it is generally recommended to use matrices over data.frames when your data allows it, i.e., when you only have one type of data, here character(). Matrices are easier to work with. x <- matrix( c('BMW', '', '', 'Mercedes', 'VW', '', 'Skoda', 'VW', 'BMW', '', '', '', 'VW', 'Skoda', '' ), ncol=3, dimnames=list( paste('person', 1:5, sep=''), paste( 'v', 1:3, sep='' ) )) brands <- sort(unique(array(x)))[-1]has.used <- t(apply(x, 1, function(a, b){b %in% a}, brands))colnames(has.used) <- brandshas.used On Thu, Dec 1, 2011 at 2:42 PM, Jean V Adams <jvad...@usgs.gov> wrote: > saschaview wrote on 12/01/2011 12:30:18 PM: > >> Hello >> >> I have a data frame, x, holding 5 persons answering the question which >> cars they have used: >> >> # the data frame >> x <- as.data.frame( >> matrix( >> c('BMW', '', '', >> 'Mercedes', 'VW', '', >> 'Skoda', 'VW', 'BMW', >> '', '', '', >> 'VW', 'Skoda', '' >> ), >> ncol=3, >> dimnames=list( >> NULL, >> paste( 'v', 1:3, sep='' ) >> ) >> ) >> ) >> >> How do I transform this data frame to a data frame stating whether they >> have used the presented car: >> >> BMW Mercedes VW Skoda >> 1 T F F F >> 2 F T T F >> 3 T F T T >> 4 F F F F >> 5 F F T T >> >> My idea was to first find all levels by: >> >> v <- unique(unlist(lapply(x, levels))) >> >> But then I am stuck. >> >> Thanks for help, *S* >> >> -- >> Sascha Vieweg, saschav...@gmail.com > > > Try this: > > uniq.cars <- sort(unique(unlist(x))) > y <- t(apply(x, 1, function(xrow) match(uniq.cars, unique(xrow)))) > dimnames(y)[[2]] <- uniq.cars > y2 <- !is.na(y[, -1]) > y2 > > Jean > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@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.
______________________________________________ R-help@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.