Hi Phil and R users Let me clear my problem. The generating sample is not prime issue here. I am simulating a situation, for which I need to sample. But once I have sampling done, I need to do a conditional decoding. Let me clear it with more clear data example:
x <- read.table(textConnection(" mark lcd1 lcd2 lcd3 PR1 PR2 PR3 PR4 1 11 22 12 1 2 3 1 2 33 44 34 1 2 3 1 3 22 44 24 3 1 2 1 4 11 33 13 2 2 1 3 5 22 11 12 3 2 2 1 "), header = TRUE) I want to do a conditional formatting of PR1:PR4 (in real sense I have >20000 such variables) based on corrsponding value in variable column lcd1 or lcd2 or lcd3. mark lcd1 lcd2 lcd3 PR1 PR2 PR3 PR4 1 11 22 12 1 2 3 1 2 33 44 34 1 2 3 1 3 22 44 24 3 1 2 1 4 11 33 13 2 2 1 3 5 22 11 12 3 2 2 1 If PR1 =1, then PR1= lcd1 PR1=2, then PR1 = lcd2 PR1=3, then PR1 = lcd3 similarly for PR2...................to end of files PR4 #Expected Output mark lcd1 lcd2 lcd3 PR1 PR2 PR3 PR4 1 11 22 12 11 22 12 11 2 33 44 34 33 44 34 33 3 22 44 24 24 22 44 22 4 11 33 13 33 33 11 13 5 22 11 12 12 11 11 22 Thank you; Ram H On Sat, Apr 9, 2011 at 4:13 PM, Phil Spector <spec...@stat.berkeley.edu>wrote: > Ram - > I think you'll have to explain what you're trying to do. > First, you're creating a 10x10 matrix newd, which could > be done a bit more efficiently by using > > newd = matrix(sample(c(1,2,3,3,),10*length(pvec),replace=TRUE),ncol=10) > > Notice that calling sapply on a matrix applies the function to each > element of the matrix. > > But your fun3 function really doesn't make sense, since you are testing > each scalar element for equality to a scalar, and then setting > it equal to a vector. It seems to me that what you're trying to do is > > > smpool = c(1,2,3,3) > allvals = rbind(lcd1,lcd2,lcd3) > pn = replicate(10,allvals[sample(smpool,1),]) > > but I can't be sure. > - Phil Spector > Statistical Computing Facility > Department of Statistics > UC Berkeley > spec...@stat.berkeley.edu > > > > On Sat, 9 Apr 2011, Ram H. Sharma wrote: > > Dear R experts >> >> Sorry for this question >> >> M1 <- 1:10 >> lcd1 <- c(11, 22, 33, 44, 11, 22, 33, 33, 22, 11) >> lcd2 <- c(22, 11, 44, 11, 33, 11, 22, 22, 11, 22) >> lcd3 <- c(12, 12, 34, 14, 13, 12, 23, 23, 12, 12) >> >> #generating variables through sampling >> pvec <- c("PR1", "PR2", "PR3", "PR4", "PR5", "PR6", "PR7", "PR8", "PR9", >> "PR10") >> fun11 <- function(x){ >> smpool <- c(1,2,3,3) >> x <- sample(smpool, 10, replace= TRUE) >> } >> newd <- sapply (pvec, fun11) >> >> >> # function to recode this new generated data >> fun3 <- function(x) { >> (if ( x ==1){ >> x = lcd1 >> }else if (x ==2){ >> x = lcd2 >> } else if ( x ==3 ){ >> x = lcd3 >> } else x = NA ) >> return(x) >> } >> Applying the function: >> pn <- sapply (newd, fun3) >> >> I am getting 10 x 100 matrix, in contrast to 10 x 10 what I am expecting ! >> >> My objective here is to replace data points in all variables in newd >> with corresponding value with values vector lcd1 or lcd2 or lcd3 depending >> upon whether they are 1 or 2 or 3. >> For example; >> >> lcd1 <- c(11, 22, 33, 44, 11, 22, 33, 33, 22, 11) >> lcd2 <- c(22, 11, 44, 11, 33, 11, 22, 22, 11, 22) >> lcd3 <- c(12, 12, 34, 14, 13, 12, 23, 23, 12, 12) >> >> PR1 <- c(1, 2, 3, 2, 1, 1, 1, 2, 3, 1) >> >> with the new >> PR1n <- c(11, 11, 34, 11, 11, 22, 33, 22, 12, 11) >> # as the first element of this vector is determined by PR1[1] indicator >> determines whether to pick lcd1[1] or lcd2[1] or lcd3[1] element >> similarly for PR1[2] indicator whether to pick lcd1[2] or lcd2[2] or >> lcd3[2] >> element >> >> The same process need to be continued other PR2 to PR10 variables. That's >> why I attempted to use sapply. >> >> Thank you for your help >> >> >> -- >> >> Ram H >> >> [[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. >> >> -- Ram H [[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.