Я сделал код, который должен случайным образом составить матрицу на основе моего набора данных, а затем вычислить собственное значение этой матрицы. после этого он должен поместить все собственные значения в гистограмму. но когда я запускаю код, я получаю ошибку «Не знаю, как автоматически выбрать масштаб для объекта типа complex. По умолчанию для непрерывного. Ошибка: Дискретное значение передается в непрерывном масштабе. Я пытался взять только реальные части алеуса в Фейге, но это не работает (я думаю, потому что это датафрейм) Кто-нибудь знает, как исправить эту ошибку?
Geigen <- function(x){
g<- eigen(matrix(x,nrow=m))$values[1]
return(g)
}
{
# k samples
k=5000
# Stel mxm matrix
m=3
#9 entries entry 1,3, 4, 8 only zero's
# eerste
d1 <- rep(0,k)
# tweede
twee <- c(GiraffePopulation$FirstYearSurvival)
twee = twee[!is.na(twee)]
tweelo <- log(twee/(1-twee))
tweer <- rnorm(k,mean = mean(tweelo),sd=sd(tweelo))
d2 <- Re(exp(tweer)/(1+exp(tweer)))
rm(twee,tweelo,tweer)
# derde
d3 <- rep(0,k)
# vierde
d4 <- rep(0,k)
# vijfde
vijf <- c(GiraffePopulation$SubadultSurvival*0.75)
vijf = vijf[!is.na(vijf)]
vijflo <- log(vijf/(1-vijf))
vijfr <- rnorm(k,mean = mean(vijflo),sd=sd(vijflo))
d5 <- Re(exp(vijfr)/(1+exp(vijfr)))
rm(vijf,vijflo,vijfr)
# zesde
zes <- c(GiraffePopulation$SubadultSurvival*0.25)
zes = zes[!is.na(zes)]
zeslo <- log(zes/(1-zes))
zesr <- rnorm(k,mean = mean(zeslo),sd=sd(zeslo))
d6 <- Re(exp(zesr)/(1+exp(zesr)))
rm(zes,zeslo,zesr)
#zevende
zeven <- c(365/GiraffePopulation$InterbirthInterval/2)
zeven = zeven[!is.na(zeven)]
zevenlo <- log(zeven/(1-zeven))
zevenr <- rnorm(k,mean = mean(zevenlo),sd=sd(zevenlo))
d7 <- Re(exp(zevenr)/(1+exp(zevenr)))
rm(zeven,zevenlo,zevenr)
#acht
d8 <- rep(0,k)
#negende
negen <- c(GiraffePopulation$AdultSurvival)
negen = negen[!is.na(negen)]
negenlo <- log(negen/(1-negen))
negenr <- rnorm(k,mean = mean(negenlo),sd=sd(negenlo))
d9 <- Re(exp(negenr)/(1+exp(negenr)))
rm(negen,negenlo,negenr)
##
D <- cbind(d1,d2,d3,d4,d5,d6,d7,d8,d9)
rm(d1,d2,d3,d4,d5,d6,d7,d8,d9)
Feig <- data.frame(leig=apply(D,1,Geigen))
##
library(ggplot2)
ggplot(Feig,aes(leig))+geom_histogram(bins = 100)+theme_bw()
}