R中FOREACH循环内的空值

时间:2015-01-20 22:54:39

标签: r foreach parallel-processing

我需要帮助来修复代码中的错误。下面我提供可重复的例子。第一个问题是xySL的所有条目都为空。但是,如果我使用简单的for循环,相同的代码工作正常。第二个问题仅涉及此示例(我的原始代码中没有此问题) - 无法从data[[i]]$x中提取数据。

  library(sp)
  library(maptools)
  library(foreach)
  library(doParallel)

  x1 <- c(1,4,5,3,2)
  y1 <- c(2,5,3,6,7)
  x2 <- c(4,4,6,3,2)
  y2 <- c(8,5,2,6,1)

  data<- vector(mode = "list", length = 2)
  data[[1]] <- cbind(x1,y1)
  data[[2]] <- cbind(x2,y2)

  xySL <- vector(mode = "list", length = 2)
  foreach(i=1:2, .packages = "sp") %dopar% {
    xy <- cbind(data[[i]]$x,data[[i]]$y)
    xy.sp = sp::SpatialPoints(xy)
    spl <- sp::SpatialLines(list(Lines(Line(xy.sp), ID=i)))
    xySpatialLines <- vector(mode = "list", length = 2)
    xySpatialLines[[1]] = spl
    spl90 <- maptools::elide(spl, rotate=90)
    xySpatialLines[[2]] = spl90
    xySL[[i]] <- xySpatialLines
 }

  print(xySL[[1]]) # NULL !!! 

0 个答案:

没有答案