如何从 R 中的行名 TCGA 数据中删除小数和重复项?

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

我正在尝试从 TCGA 数据集中的行名中删除小数。例如,从“ENSG00000124333.15”转到“ENSG00000124333”。

我尝试过以下代码:

rownames(rna) <- gsub("\\..*", "", rownames(rna))

当我运行此命令时,我收到一条错误消息,指出不允许重复的“row.names”。但在执行此操作之前我无法删除重复项,因此我不确定如何继续。

r matrix
1个回答
0
投票

解决此问题的一种方法是创建一个新列,然后将

gsub()
应用于新列。之后,您可以使用新列作为数据整理的基础:

# Sample data
rna <- data.frame(row.names = paste0("ENSG00000124333.", 1:5),
                  var1 = 1:5)

rna
             var1
ENSG00000124333.1    1
ENSG00000124333.2    2
ENSG00000124333.3    3
ENSG00000124333.4    4
ENSG00000124333.5    5

# Add row names to new column
rna$rowIDs <- rownames(rna)
rna
                  var1            rowIDs
ENSG00000124333.1    1 ENSG00000124333.1
ENSG00000124333.2    2 ENSG00000124333.2
ENSG00000124333.3    3 ENSG00000124333.3
ENSG00000124333.4    4 ENSG00000124333.4
ENSG00000124333.5    5 ENSG00000124333.5

# Remove characters after .
rna$rowIDs <- gsub("\\..*", "", rna$rowIDs)
rna
                  var1          rowIDs
ENSG00000124333.1    1 ENSG00000124333
ENSG00000124333.2    2 ENSG00000124333
ENSG00000124333.3    3 ENSG00000124333
ENSG00000124333.4    4 ENSG00000124333
ENSG00000124333.5    5 ENSG00000124333
© www.soinside.com 2019 - 2024. All rights reserved.