more generally x <- c("A", "A", "B", "C", "B", "A", "C") as.data.frame(Map(match , table = unique(x), nomatch = 0, x = list(x)))
Andrea On 11 December 2013 14:43, Duncan Murdoch <murdoch.dun...@gmail.com> wrote: > On 13-12-11 8:22 AM, PIKAL Petr wrote: > >> Hi >> >> -----Original Message----- >>> From: r-help-boun...@r-project.org [mailto:r-help-bounces@r- >>> project.org] On Behalf Of Arnaud Michel >>> Sent: Wednesday, December 11, 2013 2:01 PM >>> To: R help >>> Subject: [R] To transform a vector of qualitatives values into a >>> dataframe of quantitatives values >>> >>> Hi >>> >>> From the vector >>> X <- c(A, A, B, C, B, A, C) >>> >> >> What is A, B and C? If you expect them to be letters, they need to be in >> parentheses. >> > > You mean "quotes", not parentheses. > > >> >>> I would like to build the Dataframe : >>> data.frame( A=c(1,1,0,0,0,1,0), B=c(0,0,1,0,1,0,0), C=c(0,0,0,1,0,0,1)) >>> >>> Any ideas ? >>> >> >> X <- sample(letters[1:3], 10, replace=T) >> X >> [1] "c" "c" "a" "b" "c" "c" "a" "a" "a" "a" >> data.frame(A=(X=="a"), B=(X=="b"), C=(X=="c")) >> > > A simpler way is to use model.matrix. With your example, > > X <- factor(X) > m <- model.matrix( ~ X - 1) > > (The names of the columns may need adjusting.) > > Duncan Murdoch > > ______________________________________________ > 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. > [[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.