小编sta*_*ing的帖子

在函数内部附加()

我想给一个函数提供一个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命令之后使用?

r scoping

21
推荐指数
3
解决办法
3391
查看次数

在foreach循环中找不到函数

我正在尝试使用foreach在R中进行多核计算.

A <-function(....) {
    foreach(i=1:10) %dopar% {
    B()
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我A在控制台中调用函数.问题是我调用一个函数PosdefB只在其它脚本文件我源中定义.我不得不把Posdef输出参数列表放在foreach:.export=c("Posdef").但是我收到以下错误:

Error in { : task 3 failed - "could not find function "Posdef""
Run Code Online (Sandbox Code Playgroud)

为什么不能找到这个定义的函数?

parallel-processing foreach multicore r scoping

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

knitr文档中的动画与ggplot数字

我试图在我的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)

如何使用所有创建的图创建动画?

animation r ggplot2 knitr

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