Я делаю цикл, который позволяет редактировать матрицу корреляции, пока матрица не станет положительно определенной.Если я выполняю шаги индивидуально без цикла, это работает.Но используя цикл я получаю ошибку.Я много гуглил и не могу понять проблему.Я использую библиотеку editData
.
repeat{
corr3 <- nearPD(corr, corr=TRUE, do2eigen=TRUE)
corr3 <- as.matrix(corr3[["mat"]]) #pull the matrix from the list corr3
numrows <- nrow(corr3)
numcols <- ncol(corr3)
corr <- round(corr,7)
corr4 <- round(corr3,7)
rownames(corr) <- rownames(corr3)
#colnames(corr3) <- colnames(corr)
if(identical(corr,corr4)) {break}
else {
corr3 <- as.data.frame(as.matrix(corr3)) #change to data frame so matrix can be edited
corr7 <- editData(corr3)
corr8 <- matrix(unlist(corr7), nrow=numrows, byrow=T)
corr9 <- mapply(corr8, FUN=as.numeric)
corr9 <- matrix(data=corr9, ncol=numcols, nrow=numrows)
corr9 <- as.matrix(as.data.frame(corr9))
colnames(corr9) <- NULL
corr <- corr9
}
}
Вывод:
Listening on http://127.0.0.1:3948
03 Oct 2018 11:50:04 [rsession-default] ERROR r error 4 (R code execution error) [errormsg=object 'datatables_html' not found]; OCCURRED AT: rstudio::core::Error rstudio::r::exec::executeSafely(rstudio_boost::function<void()>) /home/ubuntu/rstudio/src/cpp/r/RExec.cpp:212; LOGGED FROM: void rstudio::session::{anonymous}::processEvents() /home/ubuntu/rstudio/src/cpp/session/SessionHttpMethods.cpp:91
Listening on http://127.0.0.1:3948