Использование для циклов для графики в R
У меня есть таблица с различными типами графиков и номерами кластеров, по которым они сортируются. Таблица выглядит так:
'data.frame': 80 obs. of 16 variables:
$ GS_CT_HC_NO: Factor w/ 16 levels "GS_CT_HC_NO",..: 1 1 1 1 1 2 2 2 2 2 ...
$ CT_HC_NO : Factor w/ 8 levels "CT_HC_NO","CT_HC_SW",..: 1 1 1 1 1 2 2 2 2 2 ...
$ GS_CT_HC : Factor w/ 8 levels "GS_CT_HC","GS_CT_LC",..: 1 1 1 1 1 1 1 1 1 1 ...
$ GS_HC_NO : Factor w/ 8 levels "GS_HC_NO","GS_HC_SW",..: 1 1 1 1 1 2 2 2 2 2 ...
$ GS_CT_NO : Factor w/ 8 levels "GS_CT_NO","GS_CT_SW",..: 1 1 1 1 1 2 2 2 2 2 ...
$ CT_HC : Factor w/ 4 levels "CT_HC","CT_LC",..: 1 1 1 1 1 1 1 1 1 1 ...
$ CT_NO : Factor w/ 4 levels "CT_NO","CT_SW",..: 1 1 1 1 1 2 2 2 2 2 ...
$ GS_CT : Factor w/ 4 levels "GS_CT","GS_FT",..: 1 1 1 1 1 1 1 1 1 1 ...
$ GS_HC : Factor w/ 4 levels "GS_HC","GS_LC",..: 1 1 1 1 1 1 1 1 1 1 ...
$ GS_NO : Factor w/ 4 levels "GS_NO","GS_SW",..: 1 1 1 1 1 2 2 2 2 2 ...
$ HC_NO : Factor w/ 4 levels "HC_NO","HC_SW",..: 1 1 1 1 1 2 2 2 2 2 ...
$ NO : Factor w/ 2 levels "NO","SW": 1 1 1 1 1 2 2 2 2 2 ...
$ HC : Factor w/ 2 levels "HC","LC": 1 1 1 1 1 1 1 1 1 1 ...
$ GS : Factor w/ 2 levels "GS","SS": 1 1 1 1 1 1 1 1 1 1 ...
$ CT : Factor w/ 2 levels "CT","FT": 1 1 1 1 1 1 1 1 1 1 ...
$ ClusterNr : int 4 5 2 4 1 4 3 3 4 4 ...
Теперь я создал Mosaicplot с пакетом vcd в R из GS_CT_HC_NO (первый столбец) и N Cluster со следующим кодом:
mosaic(ClusterNr ~ GS_CT_HC_NO, data = groups, shade = TRUE, highlighting_fill =
terrain.colors(5), labeling_args = list(tl_labels = FALSE, clip = FALSE, tl_varnames = TRUE,
pos_labels = "center", set_varnames = c(GS_CT_HC_NO = "Plot Class", ClusterNr = "Cluster"),
rot_labels = c(0, 0, 0, 90), gp_labels = (gpar(fontsize = 8)), just_labels = "left"))
Я хочу создать такой график для всех других комбинаций типов графиков, используя цикл for, но когда я попытался с
for(j in 1:dim(groups[,-16])[2]) {
mosaic(ClusterNr ~ j, data = groups, shade = TRUE, highlighting_fill =
terrain.colors(5), labeling_args = list(tl_labels = FALSE, clip = FALSE, tl_varnames =TRUE,
pos_labels = "center", set_varnames = c(j = "Plot Class", ClusterNr = "Cluster"),
rot_labels = c(0, 0, 0, 90), gp_labels = (gpar(fontsize = 8)), just_labels = "left"))
}
Я получил ошибку:
Error in model.frame.default(formula = ~j + ClusterNr, data = groups) :
Variablenlängen sind unterschiedlich (gefunden für 'ClusterNr')
Последняя часть кода ошибки означает, что длина переменных отличается (особенно для переменной 'ClusterNr')
Кто-нибудь может помочь мне найти правильный рабочий цикл с возможностью сохранить каждый график в формате JPEG?
Ура, Свен!