Hi, On a bigger dataset: #Speed: set.seed(285) dat1<- as.data.frame(matrix(paste0(sample(1:10,69*3e5,replace=TRUE),sample(LETTERS[1:10],69*3e5,replace=TRUE)),ncol=69,nrow=3e5),stringsAsFactors=FALSE) length(unique(unlist(dat1))) #[1] 100
set.seed(3490) dat2<- data.frame(old=unique(unlist(dat1)),new=sample(1:100,100,replace=FALSE),stringsAsFactors=FALSE) system.time({dat1New<-as.data.frame(array(dat2[,2][match(as.matrix(dat1),dat2[,1])],dim= dim(dat1),dimnames=dimnames(dat1)))}) #user system elapsed # 1.480 0.236 1.719 A.K. ----- Original Message ----- From: arun <smartpink...@yahoo.com> To: tobias schlager <tobebry...@me.com> Cc: R help <r-help@r-project.org> Sent: Monday, September 2, 2013 5:28 PM Subject: Re: [R] Convert chr pieces to numbers that have specific values defined by 2 vectors Hi, You may try this: set.seed(285) dat1<- as.data.frame(matrix(paste0(sample(1:10,100,replace=TRUE),sample(LETTERS[1:10],100,replace=TRUE)),10,10),stringsAsFactors=FALSE) set.seed(3490) dat2<- data.frame(old=unique(unlist(dat1)),new=sample(1:100,63,replace=FALSE),stringsAsFactors=FALSE) dat1New<-as.data.frame(array(dat2[,2][match(as.matrix(dat1),dat2[,1])],dim= dim(dat1),dimnames=dimnames(dat1))) dat1New # V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 #1 68 68 68 14 48 28 30 27 17 39 #2 71 7 64 93 25 67 61 93 67 31 #3 58 27 17 37 71 31 16 51 69 19 #4 30 71 75 43 86 27 47 35 71 22 #5 22 38 59 55 6 11 10 32 54 92 #6 63 20 88 65 17 12 48 73 54 74 #7 19 61 94 99 54 83 10 7 44 49 #8 5 2 58 100 43 63 12 10 97 2 #9 63 94 91 79 95 54 57 32 94 84 #10 5 60 65 69 50 46 70 12 98 54 A.K. ----- Original Message ----- From: tobias schlager <tobebry...@me.com> To: r-help@r-project.org Cc: Sent: Monday, September 2, 2013 3:29 PM Subject: [R] Convert chr pieces to numbers that have specific values defined by 2 vectors Dear all, I think this is an easy task, but I don't know how to do it. Specifically, I have 69 columns with 300.000 rows. In each cell there is a code like "2E3", "4RR", etc. I now have a list that replaces this with values, e.g., old new 2E3 5 4RR 3 etc. The list ist about 1600 rows long, so also to extensive for normal solutions Do you how to do that? It would be great if you could help me, best, tobebryant ______________________________________________ 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.