从optim调用包含foreach%dopar%构造的函数会导致错误:
> workers <- startWorkers(6) # 6 cores
>
> registerDoSMP(workers)
>
> t0 <- Sys.time()
>
> optim(w,maxProb2,control=list(fnscale=-1))
>
> Error in { : task 1 failed - "unused argument(s) (isPrebuilt = TRUE)"
>
> Sys.time()-t0
>
> Time difference of 2.032 secs
>
> stopWorkers(workers)
Run Code Online (Sandbox Code Playgroud)
被调用的函数看起来像这样:
> maxProb2 <- function(wp) {
>
> r <- foreach (i=s0:s1, .combine=c) %dopar% { pf(i,x[i,5],wp,isPrebuilt=TRUE) }
>
> cat("w=",wp,"max=",sum(r),"\n")
>
> sum(r)
>
> }
Run Code Online (Sandbox Code Playgroud)
pf是一些其他函数,x是预先计算元素的静态表.
同样调用要优化的函数只会导致同样的错误:
> workers <- startWorkers(6) # …Run Code Online (Sandbox Code Playgroud) 是否有任何R包允许查询维基百科(最有可能使用Mediawiki API)获取与此类查询相关的可用文章列表,以及导入文本挖掘的选定文章?
如何访问最初使用SAVE命令保存的R数据,然后使用readBin读取?
让我试着解释一下:
我使用SAVE命令将一些数据(主要是矩阵和列表)保存到文件中.
后来我转换了这个文件(加密)并使用writeBin保存它.
由于文件被转换,我无法使用LOAD直接获取数据,但需要使用readBin并在内存中执行相反的转换.
问题是,在使用readBin和转换读取之后,数据在内存中,但是我不能将它们作为R对象(例如矩阵或列表)访问,因为它们不被识别为这样(只有单个二进制对象).
最简单的方法是使用此二进制对象作为LOAD的连接.
不幸的是,LOAD不接受内存中的二进制连接.
我猜.Internal(loadFromConn2(...))可能是关键,但我没有内部工作的细节.
有没有办法让R将存储在内存中的二进制数据识别为R原始对象(矩阵,列表等)的二进制对象?
我正在使用的加密代码位于:http://pastebin.com/eVfVQYwn
提前致谢.