как мне построить эту гистограмму в R - PullRequest
0 голосов
/ 01 апреля 2020

Итак, глядя на этот вопрос здесь

"Пусть A = {0,1, 0,5, 1, 2, 5, 10, 100} L = {0,1, 0,5, 1, 2, 5, 10, 100 }

  1. Для каждой пары (α, λ) ∈ A × L, приведенной выше, используйте встроенную функцию R rgamma (), чтобы сгенерировать выборки размером 10 000 для каждой из гаммы (α, λ ) (не включайте вашу выборку в вывод!) Это даст вам 7 × 7 = 49 случайных выборок размером 10 000 каждая. Это ваши наборы данных, на которых вы будете основывать остальную часть задания.
  2. Используйте функцию hist () для построения гистограмм ваших выборочных наборов данных. Мне нужно 49 гистограмм. Если вы можете упорядочить их в хорошую сетку 7 на 7, тем лучше. Четко обозначьте свои графики. Не забудьте поиграть с варианты перерывов и выберите подходящее количество ячеек, чтобы ваши графики имели четко определенные формы. "

Я пытаюсь ответить на вопрос Q2 и хотел бы знать, что я делаю здесь неправильно, и даже является ли мой вопрос Q 1 правильным

#Question 1

set.seed(10000)

v <- c(0.1,0.5,1,2,5,10,100)
u <- c()
for(i in v)
{
  for(j in v)
  {
    u <- c(u,paste0(i,"-",j))
  }
}


#Question 2

lyst <- list()
q <- 1
for (i in v)
{
  m <- matrix(nrow=10000)
  for (j in v)
  {
    m <- cbind(m,rgamma(10000,i,j))
  }
  m <- m[,-1]
  colnames(m) <- paste0(rep(as.character(i),7),"-",as.character(j))
  lyst[[q]] <- m
  q <- q + 1
}
pdf("Hist8.pdf",width = 20,height = 10)
for(x in 1:7)
{
  for(y in 1:7)
  {
    hist(lyst[[x]][,y],
    xlab = "Value",
    main = paste("Alpha-Lambda:",
    colnames(lis[[x]])[y]))
  }
}
dev.off()

Буду признателен за любые советы или любые источники, которые могут помочь мне с т его

1 Ответ

1 голос
/ 01 апреля 2020

Вот краткие модификации вашего подхода. Вместо того, чтобы пытаться хранить все в матрице, я просто создал список из 49 желаемых распределений, а затем построил их 1 на 1.

#Question 2

lyst <- list()
#create a list of the 49 distributions
for (i in v)
{
  for (j in v)
  {
    elementname<-paste0(as.character(i),"-",as.character(j))
    print(elementname)
    lyst[[elementname]] <- rgamma(10000,i,j)
  }
}


#plot the 49 lists
#pdf("Hist8.pdf",width = 20,height = 10)
#define the number of rows and columns (7x7 is probably to many)
par(mfcol=c(7,7))
for(x in names(lyst))
{
    hist(lyst[[x]],
         xlab = "Value",
         main = paste("Alpha-Lambda:", x) )

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