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
而不干扰data.frame。
所以要将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)))
任何想法?
谢谢你
解决方案
您不允许有多个具有相同名称的行名称。如果有重复,您必须使用修改后的名称创建一个新列。你仍然想要这些信息。
rownames(sub_resEvN) <- sub("\\.\\d$","",rownames(sub_resEvN))
或者
sub_resEvN$New_Column <- sub("\\.\\d$","",rownames(sub_resEvN))
推荐阅读
- python - Python 子进程打印截断的输出
- regex - Jmeter:如何使用 Regx 检索第二行中的值?
- javascript - Facebook Instant Games:卡在加载中
- linux - Linux CMD - 如何测量两个命令的时间?
- javascript - 什么时候不使用 Formik 的 FastField?
- delphi - 如何在对象检查器中将 TCollectionItem 属性编辑器注册为对象列表?
- webstorm - 如何在 WebStorm 2019.3 上隔离终端
- python - 查询以具有最高 x 的字母 x 开头的 x
- github - 将凭据存储在 github 机密中是否安全?
- angular - 如何通过更改 Angular 8 中 html 的下拉菜单来更改 api url?