小编Muc*_*eam的帖子

Foreach .combine函数以合并R中的列表

以下是我试图在R中运行的并行循环:

cl <- makeCluster(30,type="SOCK")

registerDoSNOW(cl)


results <- foreach (i = 1:30, .combine='bindlist', .multicombine=TRUE) %dopar% {
           test <- i
           test <- as.list(test)
           list(test)
         }

stopCluster(cl)
Run Code Online (Sandbox Code Playgroud)

我的代码的输出始终是一个列表,我想将列表组合成一个大列表。因此,我编写了以下.combine函数:

bindlist <- function(x,y,...){
  append(list(x),list(y),list(...))
}
Run Code Online (Sandbox Code Playgroud)

当我进行多次运行时,我尝试使用变量的数量更改...。但是,它不起作用。我该如何重写.combine函数,使其可以与更改变量数一起使用?

parallel-processing foreach loops r

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

使用plot_grid更改背景颜色

使用plot_grid时,如何更改背景颜色?我有以下图形,但我希望背景中的所有内容都是灰色的,并且没有高度差异.我怎么能改变这个?

在此输入图像描述

这是我的图形和数据代码:

数据

   set.seed(123456)
    Test_1 <- round(rnorm(20,mean=35,sd=3),0)/100
    Test_2 <- round(rnorm(20,mean=70,sd=3),0)/100
    ei.data <- as.data.frame(cbind(Test_1,Test_2))

intercept <- as.data.frame(matrix(0,20,1))
slope <- as.data.frame(matrix(0,20,1))
data <- cbind(intercept,slope)
colnames(data) <- c("intercept","slope")
for (i in 1:nrow(ei.data)){
  data[i,1] <- (ei.data[i,2]/(1-ei.data[i,1]))
  data[i,2] <- ((ei.data[i,1]/(1-ei.data[i,1]))*(-1))
}
Run Code Online (Sandbox Code Playgroud)

左图

p <- ggplot(data, aes(Test_1,Test_2))+
  geom_point(shape=1,size=1)+
  theme_bw()+
  xlab(TeX("$n_{1,i}$"))+
  ylab(TeX("$t_{1,i}$"))+
  scale_y_continuous(limits=c(0,1),breaks=seq(0,1,0.2))+
  scale_x_continuous(limits = c(0,1),breaks=seq(0,1,0.2))+
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        panel.background = element_rect(fill = "grey92", colour = NA),
        plot.background = element_rect(fill = "grey92", colour = NA),
        axis.line = element_line(colour = "black"))+
  theme(aspect.ratio=1)

p
Run Code Online (Sandbox Code Playgroud)

正确的情节

df …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 r-grid cowplot

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

标签 统计

r ×2

cowplot ×1

foreach ×1

ggplot2 ×1

loops ×1

parallel-processing ×1

r-grid ×1