r语言 - 从 DESeq 数据框中的行名中删除最后两个字符的问题



提前感谢您的帮助

我有一个数据框,它来自与 DESeq2 库的一些分析和比较,但最后是一个大型数据帧,如下所示:

> resEvN
log2 fold change (MLE): Group ELI vs NIT 
Wald test p-value: Group ELI vs NIT 
DataFrame with 56202 rows and 6 columns
baseMean       log2FoldChange ...[6]
<numeric>            <numeric>
ENSG00000223972.4  2.78292492689073    -0.24207616846296
ENSG00000227232.4  735.590503798565   0.0496174362951506
ENSG00000243485.2  1.46155527975626  -0.0765072904209051
ENSG00000237613.2  1.48824886356107 -0.00915380882252464
ENSG00000268020.2 0.746673256410335  -0.0111420404366476

总共有 6 列和 56202 行。

Mi 问题是我需要删除".X",从row.name的末尾开始,而不会干扰数据帧。

因此,要将ENSG00000268020.2转换为ENSG00000268020

我尝试了几件事,但似乎没有任何效果,例如:

row.names(sub_resEvN)= substr(row.names(sub_resEvN), nchar(row.names(sub_resEvN)), -2)
or
substr(rownames(sub_resEvN), nchar(rownames(sub_resEvN))-2, nchar(rownames(sub_resEvN)))

知道吗?

谢谢

不允许有多个同名的行名。 如果有重复项,则必须使用修改后的名称创建新列。AMD 您仍然需要此信息。

rownames(sub_resEvN) <- sub("\.\d$","",rownames(sub_resEvN))

sub_resEvN$New_Column <- sub("\.\d$","",rownames(sub_resEvN))

另一种选择是

sub_resEvN$New_Column <-  trimws(rownames(sub_resEvN), whitespace = "\.\d$")

相关内容

最新更新