У меня есть фреймворк со столбцом категориальных данных (два возможных значения) и несколькими столбцами переменных. Мне нужно построить несколько коробчатых графиков, по одному для каждого столбца переменных. На каждом графике сравнивается значение переменной между двумя категориальными группами, указанными в столбце 1. Пока что он работает, записывая индивидуальный вызов графика для каждого столбца.
#CREATE DATASET
mydata <- data.frame(matrix(rlnorm(30*10,meanlog=0,sdlog=1), nrow=30))
colnames(mydata) <- c("categ", "var1","var2", "var3","var4", "var5", "var6", "var7", "var8", "var9")
mydata$var2 <- mydata$var2*5
mydata$categ <- sample(1:2)
mydata
#LAYOUT
par(mfrow=c(3,3), mar=c(4,4,0.5,0.5), mgp = c(1.5, 0.3, 0), tck = -0.01)
#BOXPLOTS
boxplot(var1 ~ categ, data = mydata, outpch = NA, ylim = c(0, 8), Main = "Title", ylab="VarLevel", tck = 1.0, names=c("categ1","categ2"))
stripchart(var1 ~ categ, data = mydata, vertical = TRUE, method = "jitter", ylim = c(0, 8), pch = 21, cex = 1, col=c(rgb(255, 0, 0, 100, max = 255), rgb(0, 0, 255, 100, max = 255)), bg = rgb(255, 255, 255, 10, max = 255), add = TRUE)
test <- wilcox.test(var1 ~ categ, data = mydata)
pvalue <- test$p.value
pvalueformatted <- format(pvalue, digits=3, nsmall=2)
mtext(paste(colnames(mydata)[2], " p = ", pvalueformatted), side=1, line=-13, at=0.9, cex = 0.6)
boxplot(var2 ~ categ, data = mydata, outpch = NA, ylim = c(0, 40), Main = "Title2", ylab="VarLevel", tck = 1.0, names=c("categ1","categ2"))
stripchart(var2 ~ categ, data = mydata, vertical = TRUE, method = "jitter", ylim = c(0, 40), pch = 25, cex = 1, col=c(rgb(255, 0, 0, 100, max = 255), rgb(0, 0, 255, 100, max = 255)), bg = rgb(255, 255, 255, 10, max = 255), add = TRUE)
test <- wilcox.test(var2 ~ categ, data = mydata)
pvalue <- test$p.value
pvalueformatted <- format(pvalue, digits=3, nsmall=2)
mtext(paste(colnames(mydata)[3], " p = ", pvalueformatted), side=1, line=-13, at=0.9, cex = 0.6)
Два вопроса:
1) Я хотел бы использовать функцию или цикл for для создания сценария вызова графика для каждого столбца данных. Не знаю, как это сделать. Я видел несколько связанных сообщений, но не смог до них добраться. Попытка использовать базовые функции на данный момент, хотя при необходимости можно рассмотреть ggplot или другие.
2) Как часть цикла / функции, есть ли способ настроить масштаб оси Y каждого графика, чтобы приспособить диапазон Переменная? Таким образом, для данного столбца, если максимальное значение равно 2, масштаб оси Y будет увеличиваться до 4. Если максимальное значение равно 100, ось Y будет увеличиваться до 110.
Мысли оценены