func <- function(i) {
n2=n1+1
nt=n1+t1
RNA_name=rep(colnames(RNA)[i],mi_num)
x=as.matrix(RNA[1:n1,i])
y=as.matrix(miRNA[1:n1,])
mic_n1 <- as.numeric(cstats(x, y, alpha=0.6, C=15, est="mic_approx")[,3])
n2=n1+1
nt=n1+t1
x=as.matrix(RNA[n2:nt,i])
y=as.matrix(miRNA[n2:nt,])
mic_t1 <- as.numeric(cstats(x, y, alpha=0.6, C=15, est="mic_approx")[,3])
f1=data.frame(miRNA=miRNA_name,RNA=RNA_name,
mic_nor=mic_n1,
mic_tum=mic_t1,
stringsAsFactors = FALSE)
return(f1)
}
i <- 1:ncol(RNA)
cl <- makeCluster(parallel::detectCores() - 1) # Number of cpu cores cpu内核数
clusterExport(cl,c("RNA","miRNA",'n1','t1','mi_num','miRNA_name'))
clusterEvalQ(cl,library(minerva))
results <- parLapply(cl,i,func)
res.df <- do.call('rbind',results)
stopCluster(cl)
# Select miRNA_RNA pairs with MIC greater than 0.5 in normal samples or tumor samples
#选择正常样本或肿瘤样本中MIC大于0.5的miRNA_RNA对
res.df=res.df[!duplicated(res.df),]
mic_nor_tum_0.5=res.df[abs(res.df$mic_nor)>0.5|abs(res.df$mic_tum)>0.5,]
print(paste("#features after MIC filtering : ", nrow(mic_nor_tum_0.5),sep=""))
#才开始学各位大佬下面错误这个怎么改啊
#Error in checkForRemoteErrors(val) : 11 nodes produced errors; first error: Not compatible with requested type: [type=character; target=double].
#Error in h(simpleError(msg, call)) : 在为'do.call'函数选择方法时评估'args'参数出了错: object 'results' not found
#Error: object 'res.df' not found
这个错误通常是由于 R 工作进程崩溃导致的,可能是由于内存不足或发生了诸如核心转储之类的严重问题。这不太可能是由于常规编程错误导致的
第二个错误,可能是因为在 do.call 函数中使用了未定义的变量 results,可以尝试在 do.call 函数之前添加以下代码:results <- NULL
长时间没有匹配到相应得内容,运行崩溃
这个报错通常是由于远程服务器返回了错误信息,而在本地代码中未进行处理导致的。
以下是一些建议:
首先,检查远程服务器是否正常运行,代码可以成功地远程请求数据。
检查代码中是否存在任何可能导致错误的语法或逻辑错误。
其次,如果远程服务器返回了错误信息,使用 R 中的适当函数(例如 try() 或 tryCatch())来处理这些错误信息,并确定它们的确切来源。
好几个错误, [type=character; target=double] 类型不匹配,需要的是double类型的,而你的是字符串类型的。do.call'函数'args中的一个参数叫results的没有申明,还有就是res.df也没有申明。建议调试下代码,或者一步步注释掉代码,定位是哪一行的问题
Error in checkForRemoteErrors(val) 错误,一般表示当前的计算任务存在错误,在远端节点上出现了未被处理的异常,可以使用 tryCatch() 函数来捕获指定代码块中的异常信息并进行处理