Построение графиков с использованием петель в R - PullRequest
0 голосов
/ 21 февраля 2020

Мой код выглядит следующим образом, я пытаюсь использовать al oop, чтобы получить R для построения 24 различных графиков, но я продолжаю получать код ошибки «количество заменяемых элементов не кратно длине замены»

array.1 <- array(dim=c(24,2))
array.1[,1] <- c("g1","g2","g3","g4","g5","g6","g7","g8","g9","g10","g11","g12","g13","g14","g15","g16","g17","g18","g19","g20","g21","g22","g23","g24")
array.1[,2] <- c("fiveac"   ,"fiveem",  "k3en","    k3ma",  "k3sc", "k3EnMaSc", "gender",   "SECshort", "hiquamum", "singlepar",    "house",    "fsm",  "parasp","computer",    "tuition"   ,"pupasp"   ,"homework",    "attitude"  ,"sen"  ,"truancy"  ,"absent"   ,"exclude", "IDACI_n",  "FSMband")
for(i in 1:24){
  array.1[i,1] <- ggplot(ks4.dat, aes(x=array.2[i,2], y=ks4score))
  array.1[i,1] <- array.1[i,1] + geom_point()
  array.1[i,1] <- array.1[i,1] + geom_smooth(method="lm")
}

1 Ответ

0 голосов
/ 21 февраля 2020

Простой ответ заключается в том, что вы не можете сохранить ggplot в массиве:

library(ggplot2)

a <- array(1, dim = c(1,1));  
d <- data.frame(x = rnorm(10), y = rnorm(10)); 
g <- ggplot(d, aes(x = x, y = y)) + geom_point()
a[1, 1] <- g
#> Error in a[1, 1] <- g: number of items to replace is not a multiple of replacement length

Создано в 2020-02-20 пакетом Представления (v0.3.0 )

Возможно, вы могли бы вместо этого попробовать именованный список?

Очевидно, у меня нет ваших данных для работы, но вы можете попробовать:

glist <- list()
for(i in 1:24){
  gglist[[i]] <- ggplot(ks4.dat, aes(x=array.1[i,2], y=ks4score))
  gglist[[i]] <- gglist[[i]] + geom_point()
  gglist[[i]]] <- gglist[[i]] + geom_smooth(method="lm")
}

Я также заметил, что вы пытаетесь проиндексировать объект с именем array.2 при вызове ggplot. Это ошибка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...