【发布时间】:2021-01-30 18:46:56
【问题描述】:
假设我们有以下名为data1的数据集。
id v1 v2
1 5 0.5
1 4 0.5
1 6 0.5
2 2 0.2
2 3 0.2
2 7 0.2
我的目的是对data1 子集id 后创建的每个数据进行分析。以下是我不成功的代码。
library(parallel)
library(foreach)
library(doSNOW)
data2 <- list()
foreach(i = 1:length(unique(data1$id))) %dopar% {
data2[i] <- subset(data1,data1$id==unique(data1$id)[i])
a <- matrix(ncol = 3, nrow = length(data2[i]$v1)
for (j in 1:length(data2[i]$v1)) {
for (k in 1:3) {
a[j,k] <- 1.5*data2[i]$v2
}
}
return(a)
}
非常感谢任何帮助。谢谢!
【问题讨论】:
-
我建议在没有并行化的情况下先解决这个问题。但我不关注的一件事是
xy[j, k] <- 1.5 * data2[i]$v2。对于第一个 id 组中的此数据集,这将转换为1.5 * c(0.5, 0.5, 0.5),将其分配回单个元素是不正确的。 -
感谢您的提示。那是不正确的代码行。