我想给一个函数提供一个params参数然后附加它,这样我每次引用list元素时都可以使用a而不是params $ a.
run.simulation<-function(model,params){
attach(params)
#
# Use elements of params as parameters in a simulation
detach(params)
}
Run Code Online (Sandbox Code Playgroud)
这有问题吗?如果我已经定义了一个名为c的全局变量,并且还定义了一个名为c的列表"params"的元素,其值将在attach命令之后使用?
我正在尝试使用foreach在R中进行多核计算.
A <-function(....) {
foreach(i=1:10) %dopar% {
B()
}
}
Run Code Online (Sandbox Code Playgroud)
然后我A在控制台中调用函数.问题是我调用一个函数Posdef内B只在其它脚本文件我源中定义.我不得不把Posdef输出参数列表放在foreach:.export=c("Posdef").但是我收到以下错误:
Error in { : task 3 failed - "could not find function "Posdef""
Run Code Online (Sandbox Code Playgroud)
为什么不能找到这个定义的函数?
我试图在我的knitr文档中使用以下块来创建pdf
<<animate_gg,fig.show='animate', eval=TRUE>>=
gg.list<-list()
for (w.it in w.vals){
sub.final.pts.lf.logical<-all.final.pts.lf$w %in% w.it
sub.final.pts.lf<- all.final.pts.lf[sub.final.pts.lf.logical,]
levels(sub.final.pts.lf$w)<- paste("w=",levels(sub.final.pts.lf$w))
g1<-ggplot(sub.final.pts.lf,aes(x=x,y=y,colour=pt.name))+geom_point(alpha = 1/5) +scale_shape(solid = FALSE)
gg.list<-c(gg.list,list(g1))
}
for (gg in gg.list){
gg
}
Run Code Online (Sandbox Code Playgroud)
但是这不会在乳胶中产生任何相应的部分.我假设问题是如果我gg 在括号内使用,R不会评估该行.下面用一个图创建动画
{
g1<-ggplot(sub.final.pts.lf,aes(x=x,y=y,colour=pt.name))+geom_point(alpha = 1/5) +scale_shape(solid = FALSE)
}
g1
Run Code Online (Sandbox Code Playgroud)
如何使用所有创建的图创建动画?