Marc, wpw, great, what a lot of solutions!!!
thank you very much, simone Il giorno 12/set/06, alle ore 19:21, Marc Schwartz (via MN) ha scritto: > On Tue, 2006-09-12 at 18:42 +0200, Simone Gabbriellini wrote: >> Dear List, >> >> how can I coerce a matrix like this >> >> [,1] [,2] [,3] [,4] [,5] [,6] >> [1,] "0" "1" "1" "0" "0" "0" >> [2,] "1" "0" "1" "0" "0" "0" >> [3,] "1" "1" "0" "0" "0" "0" >> [4,] "0" "0" "0" "0" "1" "0" >> [5,] "0" "0" "0" "1" "0" "0" >> [6,] "0" "0" "0" "0" "0" "0" >> >> to be filled with numbers? >> >> this is the result of replacing some character ("v", "d") with 0 and >> 1, using the code I found with RSiteSearch() >> >> z[] <- lapply(z, factor, levels = c("d", "v"), labels = c(0, 1)); >> >> thank you, >> Simone > > > I reverse engineered your (presumably) original data frame: > >> z > 1 2 3 4 5 6 > 1 d v v d d d > 2 v d v d d d > 3 v v d d d d > 4 d d d d v d > 5 d d d v d d > 6 d d d d d d > > >> str(z) > `data.frame': 6 obs. of 6 variables: > $ 1: Factor w/ 2 levels "d","v": 1 2 2 1 1 1 > $ 2: Factor w/ 2 levels "d","v": 2 1 2 1 1 1 > $ 3: Factor w/ 2 levels "d","v": 2 2 1 1 1 1 > $ 4: Factor w/ 2 levels "d","v": 1 1 1 1 2 1 > $ 5: Factor w/ 2 levels "d","v": 1 1 1 2 1 1 > $ 6: Factor w/ 2 levels "d","v": 1 1 1 1 1 1 > > > > If that is correct, then the following should yield what you want > in one > step: > >> z.num <- sapply(z, function(x) as.numeric(x) - 1) > >> z.num > 1 2 3 4 5 6 > [1,] 0 1 1 0 0 0 > [2,] 1 0 1 0 0 0 > [3,] 1 1 0 0 0 0 > [4,] 0 0 0 0 1 0 > [5,] 0 0 0 1 0 0 > [6,] 0 0 0 0 0 0 > >> str(z.num) > num [1:6, 1:6] 0 1 1 0 0 0 1 0 1 0 ... > - attr(*, "dimnames")=List of 2 > ..$ : NULL > ..$ : chr [1:6] "1" "2" "3" "4" ... > > > > Alternatively, if you were starting out with the character matrix: > >> z.char > [,1] [,2] [,3] [,4] [,5] [,6] > [1,] "0" "1" "1" "0" "0" "0" > [2,] "1" "0" "1" "0" "0" "0" > [3,] "1" "1" "0" "0" "0" "0" > [4,] "0" "0" "0" "0" "1" "0" > [5,] "0" "0" "0" "1" "0" "0" > [6,] "0" "0" "0" "0" "0" "0" > > > You could do: > >> storage.mode(z.char) <- "numeric" > >> z.char > [,1] [,2] [,3] [,4] [,5] [,6] > [1,] 0 1 1 0 0 0 > [2,] 1 0 1 0 0 0 > [3,] 1 1 0 0 0 0 > [4,] 0 0 0 0 1 0 > [5,] 0 0 0 1 0 0 > [6,] 0 0 0 0 0 0 > >> str(z.char) > num [1:6, 1:6] 0 1 1 0 0 0 1 0 1 0 ... > - attr(*, "dimnames")=List of 2 > ..$ : NULL > ..$ : NULL > > > > Yet another alternative: > >> matrix(as.numeric(z.char), dim(z.char)) > [,1] [,2] [,3] [,4] [,5] [,6] > [1,] 0 1 1 0 0 0 > [2,] 1 0 1 0 0 0 > [3,] 1 1 0 0 0 0 > [4,] 0 0 0 0 1 0 > [5,] 0 0 0 1 0 0 > [6,] 0 0 0 0 0 0 > > > > HTH, > > Marc Schwartz > > ______________________________________________ > R-help@stat.math.ethz.ch 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. |-------------------------------------------------| dott. Simone Gabbriellini PhD Student Dipartimento di Scienze Sociali Università di Pisa via Colombo 35 - 56100 Pisa mail: [EMAIL PROTECTED] mobile: +39 3475710037 |-------------------------------------------------| Please avoid sending me Word or PowerPoint attachments. See http://www.gnu.org/philosophy/no-word-attachments.html [[alternative HTML version deleted]]
______________________________________________ R-help@stat.math.ethz.ch 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.