如何在R中的foreach()中更改数据帧某列的长度

假设我们有以下名为的数据集data2

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
2   8   0.2

这是我的问题:length(data2$v1)应随数据维度的变化而变化(由分隔id)。例如,对于id = 1length(data2$v1) = 3length(data2$v1) = 4id = 2foreach()就我而言,必须使用我该怎么做?任何帮助深表感谢!

library(parallel)
library(foreach)
library(doSNOW)

foreach(i = 1:length(data2$v1)) %dopar% {
   a <- matrix(nrow = length(data2[i]$v1), ncol=2)
    for (j in 1:length(data2[i]$v1)) {
        for (k in 1:2) {
            a[j,k] <- j*k
          }
  }
return(a)
}
阿克伦

假设我们要foreach分别对那些unique“ id”行应用,一个选项是split通过“ id”或用一个外部for循环包装,遍历unique“ id”,然后在循环中subset输入该特定“ id”的数据(“ subdat”)。启动list('out')来存储的结果,foreach并分配matrix内部嵌套for循环输出

library(doParallel)

un_id <- unique(data2$id)
out <- vector('list', length(un_id))
names(out) <- un_id
registerDoParallel(cl <- makeCluster(length(un_id)))
for(id1 in un_id) {
    subdat <- subset(data2, id == id1)
    out[[id1]] <- foreach(i = seq_len(nrow(subdat))) %dopar% {
      a <- matrix(nrow = nrow(subdat), ncol=2)
       for (j in seq(i)) {
         for (k in 1:2) {
             a[j,k] <- j*k
          }
        }
        a
     }
     
  
}

stopCluster(cl)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

嵌套的foreach循环更改数据帧R中的值

如何在python中更改数据帧中的列值?

R-更改数据帧中列的编码?

如何获取数据帧中每一行的变量频率(表格会更改数据帧的长度)

如何在R中动态更改数据框中的列

如何在R中的数据帧中添加不同长度的列?

如何在r中不同列长度的现有数据帧中添加整数?

如何在 R 中更改数据框的形状?

按条件更改数据帧中的值:较长的对象长度不是较短的对象长度的倍数

更改数据帧中的列值 spark scala

如何更改数据帧列表中的全0

如何在迭代列时更改数据框中列的值?

如何在R中基于列的数据帧相交

如何在 3 列中找到完全匹配的值并更改数据框中的行值

如何在pyspark中更改数据框列名称?

如何在Laravel 5.7中更改数据库

如何在Excel中引用更改数据?

如何在Redis中更改数据库的名称?

如何在phoenix / Elixir中更改数据验证?

如何在程序中更改数据类型?

更改数据框列中的 R for 循环范围

在R中更改数据框的多个列元素的值

更改数据框列表中的特定列-R

如何在R中的3D散点图中更改数据点的颜色

如何在R中更改此函数,以便更改x中的数据帧?

如果数据帧长度不同,如何用R中另一个数据帧的值填充列?

如何将基于相等长度的数据帧列拆分为R中的单独行

如何计算列(R)中的更改数量

在R中按行更改数据帧的顺序和名称