R - apply()函数输出数据的结构是什么?

时间:2014-02-09 07:19:51

标签: r output sequence apply

我有以下数据框df

chrom value Astart     Aend  Bstart    Bend
 chr1     0      0 54519752   17408   17431
 chr1     0      0 54519752   17368   17391
 chr1     0      0 54519752  567761  567783
 chr1     0      0 54519752 1231524 1231545
 chr1     0      0 54519752 1231489 1231509
 chr1     0      0 54519752 1247918 1247941

以下代码应该为每行提供Bstart和Bend-1之间的序列,

s <- unlist(apply(df, MARGIN=1, FUN=function(x) seq(x[5], as.numeric(x[6])-1)))

似乎正确,但我不理解输出:

> head(s,28)
   11    12    13    14    15    16    17    18    19   110   111   112   113   114
17408 17409 17410 17411 17412 17413 17414 17415 17416 17417 17418 17419 17420 17421
  115   116   117   118   119   120   121   122   123    21    22    23    24    25
17422 17423 17424 17425 17426 17427 17428 17429 17430 17368 17369 17370 17371 17372

这是一个数据帧吗?整数列表?上线是什么意思,它来自哪里?它为什么从11开始?为什么它从19跳到110然后又回到21?这对我没有意义......

1 个答案:

答案 0 :(得分:1)

使用mapply

,此任务更简单
unlist(mapply(seq, df$Bstart, df$Bend - 1))