在rbind(R)

时间:2017-03-21 17:37:19

标签: r dataframe

我正在使用R,我在使用rbinding数据帧时遇到了问题。 我的数据来自Json文件,我首先想到的是将其拆分为染色体编号

#Input
Control <- fromJSON(file=O5)
RNAi <- fromJSON(file=s25p5)

#Loop throug each chromosome
Control.1 <- lapply(Control, function(I)
        {
        data.frame(matrix(unlist(I),ncol = 1, byrow = TRUE))
})

问题是,现在我有一个包含6个data.frame的列表但是在随机顺序

str(Control.1)

List of 6

  $ II    :'data.frame':    1771887 obs. of  1 variable:
  ..$ matrix.unlist.I...ncol...1..byrow...TRUE.: num [1:1771887] 0 0 0 0 0 0 0 0 0 0 ...
 $ I    :'data.frame':  1507243 obs. of  1 variable:
  ..$ matrix.unlist.I...ncol...1..byrow...TRUE.: num [1:1507243] 0 0 0 0 0 0 0 0 0 0 ...
 $ III  :'data.frame':  1378370 obs. of  1 variable:
  ..$ matrix.unlist.I...ncol...1..byrow...TRUE.: num [1:1378370] 0 0 0 0 0 0 0 0 0 0 ...

etc.

我想重新排序它们以便将$ I作为第一个data.frame,然后是$ II等。

我的目标是在

之后使用rbind
Control.2 <-do.call(rbind,Control.1)

为了让一个数据框包含所有数据框但是在正确的oder中。

有人知道怎么做吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用字母顺序:

Control.2 <-do.call(rbind,Control.1[order(names(Control.1)))

或者您可以使用除命令之外的任何其他函数来对名称向量进行排序。