Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中循环的rbind内部嵌套_R_Loops_Rbind - Fatal编程技术网

R中循环的rbind内部嵌套

R中循环的rbind内部嵌套,r,loops,rbind,R,Loops,Rbind,我需要创建不同的数据帧,在for循环中使用rbind存储不同的数据帧,每个I对应一个 这里有一个例子: library(lubridate) DATA <- data.frame("ID"=c("01","01","02","02","03","03","03","04","04",

我需要创建不同的数据帧,在for循环中使用rbind存储不同的数据帧,每个I对应一个

这里有一个例子:

library(lubridate)

    DATA <- data.frame("ID"=c("01","01","02","02","03","03","03","04","04","04","05","05","05","06","06","06"),"x"=c("2009","2012","2013","2009","2012","2011","2013","2009","2010","2010","2011","2010","2009","2010","2011","2013"),"y"=c("a","a","a","b","c","a","a","c","b","b","c","a","c","a","b","c"))
    one <- c("a","b","c")
    two <- c("2009","2010","2011","2012")
listofdfs <- list()
    
for (i in one) {
  for (j in 1:(length(two)-1)) {
    B <- NULL
    A <- DATA[DATA$x %in% c(two[j],two[j+1]) & DATA$y==i ,]

    # keep the oldest date
      tmp<-as.Date(A$x,"%Y-%m-%d")
      
      if (length(tmp)>0)
      {
        A$tag <- 0
        names(tmp)<-1:nrow(A)
        id_x <- as.numeric(tapply(tmp[year(tmp)>two[j]],A$ID[year(tmp)>two[j]],function(x){
          id <- which.min(x)
          names(x)[id]
        }))
        A$tag[id_x] <- 1
      }
      
      # aggregate datasets over different years
      B <- rbind(B,A)
         }
   listofdfs[[i]] <- B
    }
因为覆盖(我不希望),所以2010不存在

有什么想法吗?谢谢

你在哪里写作

for(一合一){
对于(j/1:(长度(二)-1)){

B我写的示例代码中有错误。现在它工作了。你能解释一下你想做什么吗?我在{}中只写了一部分代码,所以你可能不理解我的目标。无论如何,我想从数据中提取一个子集(a),首先隔离2009和2010,然后是2010和2011,然后是2011和2012等等。然后我将在(这里我没有报告我所有的代码),我将只选择一些ID。然后我想在B中绑定所有这些子集(A),但我希望每个I都有一个不同的B(“A”、“B”、“c”).更清楚吗?重点是在B中,所有创建的A都被覆盖,而在B中,我只能看到最后创建的A。为什么被覆盖?好的。我相信问题在于你有
B
$a
  ID    x y tag
2 01 2012 a   0
6 03 2011 a   0

$b
   ID    x y tag
15 06 2011 b   0

$c
   ID    x y tag
5  03 2012 c   0
11 05 2011 c   0