tobias schlager
2013-Oct-27 20:46 UTC
[R] Use correlation matrix to get values for a new data frame
Dear all, i am a bit stuck with a problem right now. Specifically, I have a correlation matrix, and a dataframe on which I want to project the values. However, I am not sure how I can do this. Here the calculations I made, I wanted to get a matrix that shows the values for each of the combinations of the ten variables in „d", so the new data is „newdat“. How might this be possible? Thanks a lot, Tobi x1 <- c(1,0,0,1,0,1,0,0,0,0) x2 <- c(0,1,0,0,0,1,0,0,0,1) x3 <- c(0,0,1,0,1,0,1,0,0,0) x4 <- c(1,0,0,1,0,0,0,0,1,0) x5 <- c(0,0,1,0,1,0,0,1,0,1) x6 <- c(1,1,0,0,0,1,0,0,0,0) x7 <- c(0,0,1,0,0,0,1,1,0,0) x8 <- c(0,0,0,0,1,0,1,1,0,0) x9 <- c(0,0,0,1,0,0,0,0,1,0) x10 <- c(0,1,0,0,1,0,0,0,0,1) x1c <- ifelse(x1==1, runif(4, -1, 1), 0); x2c <- ifelse(x2==1, runif(4, -1, 1), 0); x3c <- ifelse(x3==1, runif(4, -1, 1), 0); x4c <- ifelse(x4==1, runif(4, -1, 1), 0); x5c <- ifelse(x5==1, runif(4, -1, 1), 0); x6c <- ifelse(x6==1, runif(4, -1, 1), 0); x7c <- ifelse(x7==1, runif(4, -1, 1), 0); x8c <- ifelse(x8==1, runif(4, -1, 1), 0); x9c <- ifelse(x9==1, runif(4, -1, 1), 0); x10c <- ifelse(x10==1, runif(4, -1, 1), 0); c <- cbind(x1c,x2c,x3c,x4c,x5c,x6c,x7c,x8c,x9c,x10c); c c <- data.frame(c) c[1,1] <- 1; c[2,2] <- 1; c[3,3] <- 1; c[4,4] <- 1; c[5,5] <- 1; c[6,6] <- 1; c[7,7] <- 1; c[8,8] <- 1; c[9,9] <- 1; c[10,10] <- 1; # get symmetry c[2,1] <-c[1,2]; c[3,1] <-c[1,3]; c[4,1] <-c[1,4]; c[5,1] <-c[1,5]; c[6,1] <-c[1,6]; c[7,1] <-c[1,7]; c[8,1] <-c[1,8]; c[9,1] <-c[1,9]; c[10,1] <-c[1,10]; c[3,2] <-c[2,3]; c[4,2] <-c[2,4]; c[5,2] <-c[2,5]; c[6,2] <-c[2,6]; c[7,2] <-c[2,7]; c[8,2] <-c[2,8]; c[9,2] <-c[2,9]; c[10,2] <-c[2,10]; c[4,3] <-c[3,4]; c[5,3] <-c[3,5]; c[6,3] <-c[3,6]; c[7,3] <-c[3,7]; c[8,3] <-c[3,8]; c[9,3] <-c[3,9]; c[10,3] <-c[3,10]; c[5,4] <-c[4,5]; c[6,4] <-c[4,6]; c[7,4] <-c[4,7]; c[8,4] <-c[4,8]; c[9,4] <-c[4,9]; c[10,4] <-c[4,10]; c[6,5] <-c[5,6]; c[7,5] <-c[5,7]; c[8,5] <-c[5,8]; c[9,5] <-c[5,9]; c[10,5] <-c[5,10]; c[7,6] <-c[6,7]; c[8,6] <-c[6,8]; c[9,6] <-c[6,9]; c[10,6] <-c[6,10]; c[8,7] <-c[7,8]; c[9,7] <-c[7,9]; c[10,7] <-c[7,10]; c[9,8] <-c[8,9]; c[10,8] <-c[8,10]; c[10,9] <-c[9,10]; d <- c (c[,1], c[,2], c[,3],c[,4],c[,5],c[,6],c[,7],c[,8],c[,9],c[,10]) newdat <- expand.grid(x1c=c(1,0),x2c=c(1,0),x3c=c(1,0),x4c=c(1,0),x5c=c(1,0),x6c=c(1,0),x7c=c(1,0),x8c=c(1,0),x9c=c(1,0),x10c=c(1,0)) ____________________________ Dr. Tobias Schlager Projektleiter [[alternative HTML version deleted]]
Greg Snow
2013-Oct-30 00:28 UTC
[R] Use correlation matrix to get values for a new data frame
I am not sure that I fully understand your question, but the mvrnorm function in the MASS package may do what you want. It will generate multivariate normal data with a specified correlation(covariance). If that is not what you want then try to explain a bit more about what you want your final result to be. On Sun, Oct 27, 2013 at 2:46 PM, tobias schlager <tobebryant at me.com> wrote:> Dear all, > > i am a bit stuck with a problem right now. Specifically, I have a correlation matrix, and a dataframe on which I want to project the values. However, I am not sure how I can do this. > Here the calculations I made, I wanted to get a matrix that shows the values for each of the combinations of the ten variables in ?d", so the new data is ?newdat?. How might this be possible? > > Thanks a lot, > Tobi > > > x1 <- c(1,0,0,1,0,1,0,0,0,0) > x2 <- c(0,1,0,0,0,1,0,0,0,1) > x3 <- c(0,0,1,0,1,0,1,0,0,0) > x4 <- c(1,0,0,1,0,0,0,0,1,0) > x5 <- c(0,0,1,0,1,0,0,1,0,1) > x6 <- c(1,1,0,0,0,1,0,0,0,0) > x7 <- c(0,0,1,0,0,0,1,1,0,0) > x8 <- c(0,0,0,0,1,0,1,1,0,0) > x9 <- c(0,0,0,1,0,0,0,0,1,0) > x10 <- c(0,1,0,0,1,0,0,0,0,1) > > x1c <- ifelse(x1==1, runif(4, -1, 1), 0); > x2c <- ifelse(x2==1, runif(4, -1, 1), 0); > x3c <- ifelse(x3==1, runif(4, -1, 1), 0); > x4c <- ifelse(x4==1, runif(4, -1, 1), 0); > x5c <- ifelse(x5==1, runif(4, -1, 1), 0); > x6c <- ifelse(x6==1, runif(4, -1, 1), 0); > x7c <- ifelse(x7==1, runif(4, -1, 1), 0); > x8c <- ifelse(x8==1, runif(4, -1, 1), 0); > x9c <- ifelse(x9==1, runif(4, -1, 1), 0); > x10c <- ifelse(x10==1, runif(4, -1, 1), 0); > > c <- cbind(x1c,x2c,x3c,x4c,x5c,x6c,x7c,x8c,x9c,x10c); c > > c <- data.frame(c) > c[1,1] <- 1; c[2,2] <- 1; c[3,3] <- 1; c[4,4] <- 1; c[5,5] <- 1; c[6,6] <- 1; c[7,7] <- 1; c[8,8] <- 1; c[9,9] <- 1; c[10,10] <- 1; > > # get symmetry > c[2,1] <-c[1,2]; c[3,1] <-c[1,3]; c[4,1] <-c[1,4]; c[5,1] <-c[1,5]; c[6,1] <-c[1,6]; c[7,1] <-c[1,7]; c[8,1] <-c[1,8]; c[9,1] <-c[1,9]; c[10,1] <-c[1,10]; > c[3,2] <-c[2,3]; c[4,2] <-c[2,4]; c[5,2] <-c[2,5]; c[6,2] <-c[2,6]; c[7,2] <-c[2,7]; c[8,2] <-c[2,8]; c[9,2] <-c[2,9]; c[10,2] <-c[2,10]; > c[4,3] <-c[3,4]; c[5,3] <-c[3,5]; c[6,3] <-c[3,6]; c[7,3] <-c[3,7]; c[8,3] <-c[3,8]; c[9,3] <-c[3,9]; c[10,3] <-c[3,10]; > c[5,4] <-c[4,5]; c[6,4] <-c[4,6]; c[7,4] <-c[4,7]; c[8,4] <-c[4,8]; c[9,4] <-c[4,9]; c[10,4] <-c[4,10]; > c[6,5] <-c[5,6]; c[7,5] <-c[5,7]; c[8,5] <-c[5,8]; c[9,5] <-c[5,9]; c[10,5] <-c[5,10]; > c[7,6] <-c[6,7]; c[8,6] <-c[6,8]; c[9,6] <-c[6,9]; c[10,6] <-c[6,10]; > c[8,7] <-c[7,8]; c[9,7] <-c[7,9]; c[10,7] <-c[7,10]; > c[9,8] <-c[8,9]; c[10,8] <-c[8,10]; > c[10,9] <-c[9,10]; > > d <- c (c[,1], c[,2], c[,3],c[,4],c[,5],c[,6],c[,7],c[,8],c[,9],c[,10]) > > > newdat <- expand.grid(x1c=c(1,0),x2c=c(1,0),x3c=c(1,0),x4c=c(1,0),x5c=c(1,0),x6c=c(1,0),x7c=c(1,0),x8c=c(1,0),x9c=c(1,0),x10c=c(1,0)) > > ____________________________ > Dr. Tobias Schlager > Projektleiter > > > [[alternative HTML version deleted]] > > > ______________________________________________ > R-help at 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. >-- Gregory (Greg) L. Snow Ph.D. 538280 at gmail.com