我有一个使用二项式函数生成矩阵的脚本:
randomdiv <- function(ncells, ndivs, size) { sz <- matrix(nrow = ncells, ncol = ndivs)
#avsz <- vector(length =ndivs)
#sdsz <- vector(length =ndivs)
#count <- vector(length = ndivs)
#loss <- vector(length = ndivs)
for (j in 1:ncells) {
n <- size
for (i in 1:ndivs)
{
n <- rbinom (1, n, 0.5)
n <- 2 * n
sz[j,i] <- n
}
}
return (sz)
}
randomdiv(20,20, 20)
Run Code Online (Sandbox Code Playgroud)
我需要生成这个矩阵20次,每次根据预定义的二项式函数生成新值.
我最初是这样矢量化的:
mean20 <- randomdiv(20, 20, 20)
Run Code Online (Sandbox Code Playgroud)
但是这会将特定的矩阵标记为"mean20",这样如果我多次运行mean20,就会产生相同的矩阵 - 我需要为每个矩阵运行新的脚本.
即使没有对初始矩阵进行矢量化,下面的代码也不会告诉R每次都重新生成矩阵 - 因此,对于20个矩阵而言,这不是一个列矩阵,而是为一个矩阵生成列均值,并将它们重复为20列. …
我使用该rbindlist()函数尝试合并两个融化的数据帧(means_melt和means_melt_50).我想知道它为什么会出现数据中断?我是否可以使用整个列表,因为我最终打算创建两个图表,每个图表有5组数据(按变量分组),并使用facet_grid().我希望这两个图表基于"准确度"分开.
> compiled_means <- list(means_melt, means_melt_50)
> rbindlist(compiled_means, use.names = TRUE, fill=FALSE, idcol = NULL)
Divisions Accuracy variable value
1: 1 0 mean20 16
2: 2 0 mean20 20
3: 3 0 mean20 21
4: 4 0 mean20 17
5: 5 0 mean20 20
---
196: 16 50 mean_2 2
197: 17 50 mean_2 2
198: 18 50 mean_2 2
199: 19 50 mean_2 4
200: 20 50 mean_2 3
Run Code Online (Sandbox Code Playgroud)
如果有人能够更有效地格式化数据,以便将其放入我想要的图表中,我很高兴听到建议.我不确定我正在服用的路线是否有效或啰嗦......