【发布时间】:2020-06-10 22:36:36
【问题描述】:
我有两个数据框
第一个(A):
第一个列是“行名”
GTEX-11DXY-0426-SM-5H12R GTEX-11EQ8-0826-SM-5N9FG [...30]
ENSG00000223972.4 0 1
ENSG00000227232.4 663 802
ENSG00000243485.2 0 1
ENSG00000237613.2 0 0
ENSG00000268020.2 0 1
ENSG00000240361.1 3 0
它继续以相同格式再显示 30 列
我想根据另一个数据框列的顺序对其进行排序,如下所示:
> head(targets10)
# A tibble: 6 x 7
# Groups: Group [1]
Sample_Name Grupo_analisis body_site molecular_data_~ sex Group
1 GTEX-11XUK~ 3 Thyroid RNA Seq (NGS) fema~ ELI
2 GTEX-R55G-~ 3 Thyroid RNA Seq (NGS) fema~ ELI
3 GTEX-PLZ4-~ 3 Thyroid RNA Seq (NGS) fema~ ELI
4 GTEX-14AS3~ 3 Thyroid RNA Seq (NGS) fema~ ELI
5 GTEX-14BMU~ 3 Thyroid Allele-Specific~ fema~ ELI
6 GTEX-13QJC~ 3 Thyroid Allele-Specific~ fema~ ELI
# ... with 1 more variable: ShortName <fct>
Sample_Name 列与数据框 A 中的列标题具有相同的名称。
我希望它们具有相同的顺序,因此数据框 A 中的第一列是 targets10$Sample_Name 中的第一行
我尝试了以下方法:
library(data.table)
setDT(countdata)
setcolorder(countdata, as.character(coldata$Sample_Name))
它可以工作,但会从数据框中删除我的rownames,我需要它们留下来!!!
请帮帮我
非常感谢
【问题讨论】:
-
您可以使用
keep.rownames参数来保留行名:setDT(countdata, keep.rownames=TRUE)
标签: r data.table row