Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么future包找不到函数?_R_Parallel Processing_Future - Fatal编程技术网

为什么future包找不到函数?

为什么future包找不到函数?,r,parallel-processing,future,R,Parallel Processing,Future,我正在使用来自package parallel的函数parlappy实现并行化。此包要求使用函数clusterExport()导出对象。看了一段关于软件包未来的视频后,我想我可以通过使用它来避免导出步骤。正如下面的示例所示,它没有起作用 代码如下: library("future") source("C:\\Dropbox\\Code\\R\\TestFuncs.R") plan(sequential) plan(multisession, worke

我正在使用来自package parallel的函数parlappy实现并行化。此包要求使用函数clusterExport()导出对象。看了一段关于软件包未来的视频后,我想我可以通过使用它来避免导出步骤。正如下面的示例所示,它没有起作用

代码如下:

library("future")

source("C:\\Dropbox\\Code\\R\\TestFuncs.R")

plan(sequential)
plan(multisession, workers=4)
bas <- function(x) {sapply(1:10, bas2(x))}

bar <- function(y) {bas(y)}

foo <- function(x) {bar(x)}

test <- lapply(1:100, function(x) future({ foo(x) }))
testvals <- lapply(test, value)
库(“未来”)
源(“C:\\Dropbox\\Code\\R\\TestFuncs.R”)
计划(顺序)
计划(多段,工人=4)

bas这似乎与未来无关。您的
bas
功能似乎不起作用。在它的当前状态下

bas <- function(x) {sapply(1:10, bas2(x))}
sapply
的第二个参数需要是函数,而不是表达式。应该是这样的

bas <- function(x) {sapply(1:10, function(y) bas2(x))}

bas这似乎与未来无关。您的
bas
功能似乎不起作用。在它的当前状态下

bas <- function(x) {sapply(1:10, bas2(x))}
sapply
的第二个参数需要是函数,而不是表达式。应该是这样的

bas <- function(x) {sapply(1:10, function(y) bas2(x))}

你是对的,但这并没有解决我的问题。我试图做出一个可复制的例子,但失败了。更正了您建议示例程序工作的方式。我原来的程序仍然不起作用。现在我意识到它有一个不同的问题。当我对Lappy with future的结果调用value()时,它会给我这样一条消息,即使在同一个程序文件中定义了conjunction_func,也会发生这种情况。如果没有导致相同错误的可复制示例,很难提供任何其他进一步的帮助。我知道。谢谢你的努力。我试图创建一个可复制的示例,但没有成功。我的程序有点复杂,我必须更加努力。与此同时,我找到了一个解决办法。我试图调试,发现错误发生在一个我称之为FUN的函数中。我把一个打印(连词func)(不带引号)放在趣味中调试,错误消失了。然后我发现我不需要打印语句。只要将“conjunction_func”放在函数体中,而不加引号或函数定义就可以解决问题。我不知道为什么会这样。你是对的,但这并没有解决我的问题。我试图做出一个可复制的例子,但失败了。更正了您建议示例程序工作的方式。我原来的程序仍然不起作用。现在我意识到它有一个不同的问题。当我对Lappy with future的结果调用value()时,它会给我这样一条消息,即使在同一个程序文件中定义了conjunction_func,也会发生这种情况。如果没有导致相同错误的可复制示例,很难提供任何其他进一步的帮助。我知道。谢谢你的努力。我试图创建一个可复制的示例,但没有成功。我的程序有点复杂,我必须更加努力。与此同时,我找到了一个解决办法。我试图调试,发现错误发生在一个我称之为FUN的函数中。我把一个打印(连词func)(不带引号)放在趣味中调试,错误消失了。然后我发现我不需要打印语句。只要将“conjunction_func”放在函数体中,而不加引号或函数定义就可以解决问题。我不知道为什么会这样。
bas <- function(x) {sapply(1:10, function(y) bas2(x))}