R语言 将列标题(第1行)右移

g0czyy6m  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(242)

我正在导出数据框,但生成的列标题不在正确的数据条目上。我想将当前所有列向右移动1,并向第1列添加标题。

    • 电流输出示例**:
baseMean    log2FoldChange  lfcSE   stat    pvalue  padj    
ENSMUST00000103410.3    15237.92545 1.667016621 0.472605404 3.527290643 0.000419836 0.00977886

"我想要的"

transcript_ID   baseMean    log2FoldChange  lfcSE   stat    pvalue  padj    
ENSMUST00000103410.3    15237.92545 1.667016621 0.472605404 3.527290643 0.000419836 0.00977886

以下是我用于导出数据框的内容:

write.table(resSig, file = outFile, sep = "\t", eol = "\n")
    • 这是使用**dput(head(resSig))时原始数据框的外观

一个三个三个一个
以及

resSig <- cbind(transcript_ID=rownames(resSig), resSig)

但这些并没有导致正确的变化。

zf9nrax1

zf9nrax11#

由于类不同,我们可以在转换为data.frame后使用rownames_to_column

class(resSig)
[1] "DESeqResults"
attr(,"package")
[1] "DESeq2"

我们使用as.data.frame转换为 Dataframe ,然后执行rownames_to_column

library(dplyr)
library(tibble)
resSig <- resSig %>%
   as.data.frame %>%
   rownames_to_column("transcript_ID")
  • 输出
resSig 
       transcript_ID   baseMean log2FoldChange     lfcSE     stat       pvalue         padj
1 ENSMUST00000103410.3 15237.9255       1.667017 0.4726054 3.527291 4.198356e-04 0.0097788597
2 ENSMUST00000194738.6   134.4450       1.909577 0.3913188 4.879849 1.061670e-06 0.0001551706
3 ENSMUST00000178282.3 24953.2773       1.523272 0.3601117 4.229998 2.336935e-05 0.0013347592
4 ENSMUST00000200568.2   675.4079       2.284544 0.5577937 4.095680 4.209318e-05 0.0020138101
5 ENSMUST00000196768.2    69.8793       2.997955 0.8722588 3.437002 5.881911e-04 0.0122055138
6 ENSMUST00000197515.2   119.6366       3.170698 0.7820734 4.054220 5.030189e-05 0.0022939429
> str(resSig)
data.frame':    6 obs. of  7 variables:
 $ transcript_ID : chr  "ENSMUST00000103410.3" "ENSMUST00000194738.6" "ENSMUST00000178282.3" "ENSMUST00000200568.2" ...
 $ baseMean      : num  15237.9 134.4 24953.3 675.4 69.9 ...
 $ log2FoldChange: num  1.67 1.91 1.52 2.28 3 ...
 $ lfcSE         : num  0.473 0.391 0.36 0.558 0.872 ...
 $ stat          : num  3.53 4.88 4.23 4.1 3.44 ...
 $ pvalue        : num  4.20e-04 1.06e-06 2.34e-05 4.21e-05 5.88e-04 ...
 $ padj          : num  0.009779 0.000155 0.001335 0.002014 0.012206 ...

注意:OP的最后一段代码在转换为data.frame后也可以工作

resSig <- as.data.frame(resSig)
resSig <- cbind(transcript_ID=rownames(resSig), resSig)
row.names(resSig) <- NULL
> resSig
         transcript_ID   baseMean log2FoldChange     lfcSE     stat       pvalue         padj
1 ENSMUST00000103410.3 15237.9255       1.667017 0.4726054 3.527291 4.198356e-04 0.0097788597
2 ENSMUST00000194738.6   134.4450       1.909577 0.3913188 4.879849 1.061670e-06 0.0001551706
3 ENSMUST00000178282.3 24953.2773       1.523272 0.3601117 4.229998 2.336935e-05 0.0013347592
4 ENSMUST00000200568.2   675.4079       2.284544 0.5577937 4.095680 4.209318e-05 0.0020138101
5 ENSMUST00000196768.2    69.8793       2.997955 0.8722588 3.437002 5.881911e-04 0.0122055138
6 ENSMUST00000197515.2   119.6366       3.170698 0.7820734 4.054220 5.030189e-05 0.0022939429

写入该文件可获得

write.table(resSig, file = file.path(getwd(), "Downloads", 
    "ivan.txt"), row.names = FALSE, quote = FALSE)
  • 输出

相关问题