我正在制作一个循环,允许编辑相关矩阵,直到该矩阵为正定为止。如果我单独运行这些步骤而没有循环,那么它将起作用。但是使用循环我得到一个错误。我已经进行了大量的Google搜索,无法找出问题所在。我正在使用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
答案 0 :(得分:0)
在RStudio中使用editData后出现相同的错误。此错误是几天前(几周?)开始的,但不是之前开始的。也许在升级系统或r packagaes后出现的editData代码中有一些回归? (在此处使用Kubuntu 16.04,并使用rrutrer repo获取更新的R包)
if (my_data_file1!="NA") {
md.1 <- gidFileRead(my_file1)
md.1.orig <- md.1
if (dim(md.1.orig)[1]!=0) {
md.1 <- editData(md.1.orig)
}
md.1.esborrats <- setdiff(md.1.orig, md.1)
if (dim(md.1)[1]==0) {
md.1 <- rbind(md.1,
rep("NA",length(md.1)))
colnames(md.1) <- colnames(gidFileRead(my_file1))
}
}