小编mja*_*iec的帖子

R - 由foreach调用的foreach%dopar%问题

从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)

parallel-processing r

20
推荐指数
2
解决办法
1万
查看次数

如何从R访问维基百科?

是否有任何R包允许查询维基百科(最有可能使用Mediawiki API)获取与此类查询相关的可用文章列表,以及导入文本挖掘的选定文章?

wikipedia r text-mining wikipedia-api mediawiki-api

8
推荐指数
2
解决办法
4330
查看次数

在R?内存数据处理中:save - > readBin - >?

如何访问最初使用SAVE命令保存的R数据,然后使用readBin读取?

让我试着解释一下:

我使用SAVE命令将一些数据(主要是矩阵和列表)保存到文件中.

后来我转换了这个文件(加密)并使用writeBin保存它.

由于文件被转换,我无法使用LOAD直接获取数据,但需要使用readBin并在内存中执行相反的转换.

问题是,在使用readBin和转换读取之后,数据在内存中,但是我不能将它们作为R对象(例如矩阵或列表)访问,因为它们不被识别为这样(只有单个二进制对象).

最简单的方法是使用此二进制对象作为LOAD的连接.

不幸的是,LOAD不接受内存中的二进制连接.

我猜.Internal(loadFromConn2(...))可能是关键,但我没有内部工作的细节.

有没有办法让R将存储在内存中的二进制数据识别为R原始对象(矩阵,列表等)的二进制对象?

我正在使用的加密代码位于:http://pastebin.com/eVfVQYwn

提前致谢.

r

1
推荐指数
1
解决办法
489
查看次数