如何按用户定义的顺序对数据帧进行排序(例如,非字母顺序)

生物危害

给定一个数据框 dna

> dna
chrom   start
chr2    39482
chr1    203918
chr1    198282
chrX    7839028
chr17   3874

以下代码dna$chrom字母升序和$start数字升序重新排序

> dna <- dna[with(dna, order(chrom, start)), ]
> dna
chrom   start
chr1    198282
chr1    203918
chr17   3874
chr2    39482
chrX    7839028

但是,我希望可以$chrom按以下顺序订购(为方便起见,在此简化):

chrom_order <- c("chr1","chr2", "chr17", "chrX")

我不允许重命名的东西,例如chr1chr01

普拉萨娜·南达库玛(Prasanna Nandakumar)

您需要指定levelsin factor,然后order与索引一起使用

zz <- "chrom   start
chr2    39482
chr1    203918
chr1    198282
chrX    7839028
chr17   3874"
Data <- read.table(text=zz, header = TRUE)

library(Hmisc)
library(gdata)

Data$chrom  <- reorder.factor(Data$chrom , levels = c("chr1","chr2", "chr17", "chrX"))

Data[order(Data$chrom), ]
  chrom   start
2  chr1  203918
3  chr1  198282
1  chr2   39482
5 chr17    3874
4  chrX 7839028  

或者您可以使用以下方法:

> Data$chrom  <- factor(chrom , levels = c("chr1","chr2", "chr17", "chrX"))
> Data[order(Data$chrom), ]
  chrom   start
2  chr1  203918
3  chr1  198282
1  chr2   39482
5 chr17    3874
4  chrX 7839028

或使用此:

> Data$chrom <- reorder(Data$chrom, new.order=c("chr1","chr2", "chr17", "chrX"))
> Data[order(Data$chrom), ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

按特定的用户定义顺序对数据透视表数据帧的索引进行排序

按这些数据帧的名称的字母顺序对数据帧列表进行排序

如何根据数据帧的顺序(而不是按字母顺序)对因子级别进行排序

按varchar字母顺序对数据进行排序

如何按字母顺序按索引值对数据框的列进行排序

如何通过删除名称开头的数字按字母顺序对数据进行排序

如何在R中按预定的因子级别顺序对数据帧进行排序?

如何按字母顺序对数组排序?

如何按字母顺序对数组排序?

按定义的顺序对数组进行排序

如何按预定义的顺序对数组进行排序

如何按字母顺序对 Github 用户 API 进行排序

如何使用Meteor按字母顺序对用户进行排序?

如何按数字顺序对数据路径进行排序?

如何在C ++中从对数字进行排序到按字母顺序进行排序

R在数据帧列表的每个数据帧中按字母顺序对列进行排序

如何按字母顺序对LinkedList进行排序?

我无法使用neDB数据库按字母顺序对数据进行排序

MySQL-按字母顺序对数字进行排序

根据搜索输入按字母顺序对数组进行排序

按字母顺序对数组进行排序:Coffeescript

用数字按字母顺序对数组进行排序

Numpy Python:按字母顺序对数组的列进行排序

使用sort方法按字母顺序对数组进行排序

Javascript按日期和字母顺序对数组进行排序

按字母顺序对数组列表进行排序

无法按字母顺序对数组进行排序

按字母顺序对数据表进行字母排序,然后按R中的数字值排序

验证并格式化JSON,而无需使用'jsonlint'按字母顺序对数据进行排序