Создание нескольких скрипичных сюжетов - PullRequest
2 голосов
/ 25 сентября 2019

У меня есть фрейм данных с 43 различными числовыми переменными и одной категориальной переменной с 823 строками (пациентами).Мне нужен сюжет скрипки для каждой числовой переменной (каждого столбца), сгруппированной на основе категориальной переменной. Категориальная переменная имеет различные этнические группы, такие как «АА», «Азиат», «Коренные американцы».Поэтому мне нужно 43 графика для скрипки, показывающих распределение каждой числовой переменной (т. Е. Каждого столбца) по различным этническим группам. Категориальная переменная будет постоянной. Я пытаюсь использовать циклы, но думаю, что в коде есть проблема.Это не работает.

The code I am using to generate each violin plot is as follows.
ggplot2.violinplot(data=violin_df, xName='Race',yName='Cluster.1',
                   addDot=TRUE, dotSize=0.8,
                   dotPosition="jitter", jitter=0.2)


Here is the reproducible example dataset and code I am using to 
generate

install.packages("devtools")
library(devtools)
install_github("kassambara/easyGgplot2")
library(easyGgplot2)

data <- matrix(rnorm(150), nrow=15)
data <- as.data.frame(data)
data$groups <- c("group1","group1","group1","group1","group1",
             "group2","group2","group2","group2","group2",
             "group3","group3","group3","group3","group3")
data$groups <- as.factor(data$groups)

ggplot2.violinplot(data=data,xName="groups",yName="V1",
               addDot=TRUE, dotSize=0.8,
               dotPosition="jitter", jitter=0.2)



 ######I need the violin plots for all the 9 column variables in 
 ####the similar manner
 for (i in 1:ncol(data)) {
 png(file = paste("var_", i, ".png", sep=""))
 ggplot2.violinplot(data=data,xName="groups",yName="data[,i]",
                 addDot=TRUE, dotSize=0.8,
                 dotPosition="jitter", jitter=0.2)
 dev.off()
 }
...