我正在使用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等。
我的目标是在
之后使用rbindControl.2 <-do.call(rbind,Control.1)
为了让一个数据框包含所有数据框但是在正确的oder中。
有人知道怎么做吗?
谢谢!
答案 0 :(得分:1)
您可以使用字母顺序:
Control.2 <-do.call(rbind,Control.1[order(names(Control.1)))
或者您可以使用除命令之外的任何其他函数来对名称向量进行排序。