Hi: Here's one approach:
X1 <- sample(1:4, 10, replace = TRUE, prob = c(0.4, 0.2, 0.2, 0.2)) foo <- function(x) { m <- matrix(NA, nrow = length(x), ncol = length(x)) m[, 1] <- x idx <- seq_len(length(x)) for(j in idx[-1]) { k <- sample(idx, 2) x <- replace(x, k, 5) m[, j] <- x } m } foo(X1) # For an example I ran, I got > foo(X1) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 4 4 4 4 4 4 4 4 4 4 [2,] 2 2 2 2 5 5 5 5 5 5 [3,] 4 4 4 4 4 4 4 5 5 5 [4,] 1 1 1 1 1 1 1 5 5 5 [5,] 1 5 5 5 5 5 5 5 5 5 [6,] 2 2 2 2 2 2 2 2 5 5 [7,] 3 3 5 5 5 5 5 5 5 5 [8,] 4 4 4 4 5 5 5 5 5 5 [9,] 3 5 5 5 5 5 5 5 5 5 [10,] 4 4 4 5 5 5 5 5 5 5 The function returns a matrix (which should make the function a bit faster). You can always convert it to a data frame and assign column names to it afterward, or you can modify the function to return a data frame rather than a matrix (as.data.frame(m) in the last line). HTH, Dennis On Wed, Aug 31, 2011 at 6:10 PM, Nilaya Sharma <nilaya.sha...@gmail.com> wrote: > Dear all > > Sorry for simple question: > > I want to put the following option into look as number of X is large 1000 > variables > > X1 <- sample(c(1,2, 3, 4),10, replace = T, prob = c(0.4, 0.2, 0.2, 0.2)) > > cv1 <- round(runif(2, 1, 10)) > > > # X2 is copy of X1 > > X2 <- X1 > > # now X2 is different in cv1 random positions > > X2[cv1] <- 5 > > cv2 <- round(runif(2, 1, 10)) > > > # X3 is copy of X2 > > X3 <- X2 > > X3[cv2] <- 5 > > …. > > So on till X10 > > mydf <- data.frame ( X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) > > > > The basic idea is the X2 is like X1 but is different at two positions where > the normal value is replaced with 5, the position is defined by cv1 . The > process is repeated till the last variable. > > > > I tried several way. One of unsuccessful function: > > v = 2:10 > > mufun3 <- function(v, x){ > > x[,v] <- x[,v-1] > > cv1 <- round(runif(3, 1, 10)) > > } > > mufun3 (v, X1) > > > Thank you for the help > > > NIL > > [[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.