I have many X and Y variables (approximately 500 x 500). The following small data:
yvars <- data.frame (Yv1 = rnorm(100, 5, 3), Y2 = rnorm (100, 6, 4), Yv3 = rnorm (100, 14, 3)) xvars <- data.frame (Xv1 = sample (c(1,0, -1), 100, replace = T), X2 = sample (c(1,0, -1), 100, replace = T), Xv3 = sample (c(1,0, -1), 100, replace = T), D = sample (c(1,0, -1), 100, replace = T))
I want to highlight p-values ββand make such a matrix:
Yv1 Y2 Yv3 Xv1 X2 Xv3 D
Here is my attempt to loop:
prob = NULL anova.pmat <- function (x) { mydata <- data.frame(yvar = yvars[, x], xvars) for (i in seq(length(xvars))) { prob[[i]] <- anova(lm(yvar ~ mydata[, i + 1], data = mydata))$`Pr(>F)`[1] } } sapply (yvars,anova.pmat) Error in .subset(x, j) : only 0 may be mixed with negative subscripts What could be the solution ?
Edit:
For the first variable Y:
For the first variable Y:
prob <- NULL mydata <- data.frame(yvar = yvars[, 1], xvars) for (i in seq(length(xvars))) { prob[[i]] <- anova(lm(yvar ~ mydata[, i + 1], data = mydata))$`Pr(>F)`[1] } prob [1] 0.4995179 0.4067040 0.4181571 0.6291167
Change again:
for (j in seq(length (yvars))){ prob <- NULL mydata <- data.frame(yvar = yvars[, j], xvars) for (i in seq(length(xvars))) { prob[[i]] <- anova(lm(yvar ~ mydata[, i + 1], data = mydata))$`Pr(>F)`[1] } } Gives the same result as above !!!