r语言 - rbind 正在更改我的一列的常量数



我正在尝试使矩阵形成数据帧,一切都运行良好,但是当我使用 rbind 时,我的一列中的常量数字会发生变化。

我的数据帧如下所示:

       CHR  POS    Fd     FdDenom
  1    10   3809  0.0000  0.0000 
  2    10   5673 -0.2500  0.0000
  3    10   5847  0.0000  0.5000
 ...

并被命名为FS_10

比我正在运行下一个 for 循环

 table10 <-c()
 a <- 0
 for(i in 1:round((nrow(Fs_10)/50))) {
 window <- Fs_4[a:c(a+50),]
 a<- a+50 
 a1 <- sum(window$FdNum)
 a2 <- sum(window$FdDenom)
 Result <- a1/a2
 start <- window[1,]
 end <-window[50,]
 middle <- (start[,2]+end[,2])/2
 table10 <- rbind(table10,c(window[1,1], start[,2], end[,2], end[,2]-start[,2], middle, Result))
}

我的输出如下所示:

     V1    V2       V3        V4          V5           V6
  1   2     3869   624096   620287      313952.5     0.029411765
 50   2   624096   624694      598      624395.0     0.500000000
100   2   624714   625470      756      625092.0     0.205128205

我希望在 V1 列中有数字 10,但我有 2,我改变了几件事,2 仍然存在而不是 10。你知道发生了什么吗?

该问题的简化版本是:

  rbind(c(start[,1], start[,2], end[,2]), c(start[,1], start[,2], end[,2]))

起点是:

        CHR       POS FdNum FdDenom
240938  10  148990666  0.25    0.25

结尾是:

        CHR       POS FdNum FdDenom
240987  10 149534407  -0.5       0

我有这个:

        [,1]      [,2]      [,3]
   [1,]    2 148990666 149534407
   [2,]    2 148990666 149534407

再次是 2 而不是 10

取消此操作:

  rbind(list(inicio[,1], inicio[,2], fin[,2]), list(inicio[,1], inicio[,2], fin[,2]))

我有这个:

      [,1]     [,2]      [,3]     
 [1,] factor,1 148990666 149534407
 [2,] factor,1 148990666 149534407

你知道哪个问题出在哪里吗?

谢谢

我是 R 编程的新手,我以为我正在创建一个

矩阵,但 akrun 是对的,我正在创建一个列表。我的解决方案是创建一个数据帧,用以下内容替换我的 for 循环的 las 行:

  tabla10 <- rbind(tabla10,data.frame(window[1,c(1,2)], start[,2], end[,2], end[,2]-start[,2], meddle, Result))

但是我仍然不明白为什么 10 变成 2,我会对此进行更多研究。

谢谢

最新更新