R-重新排序数据帧,保留第一列

问题描述 投票:0回答:1

我有两个数据框

第一个(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中的第一列是target10 $ Sample_Name中的第一行

我尝试了以下操作:

library(data.table)
setDT(countdata)
setcolorder(countdata, as.character(coldata$Sample_Name))

并且它有效,但是从数据框中删除了我的rownames,我需要他们留下!

请帮助我

非常感谢

r data.table row
1个回答
0
投票

您可以这样做:

dput(dfB$Sample_Name),它将把Sample_Name列的值打印到控制台。然后,您可以复制输出,然后执行:

library(dplyr)
dfA <- dfA %>%
  select("GTEX-11XUK", "GTEX-R55G", etc...)
© www.soinside.com 2019 - 2024. All rights reserved.