我有以下数据框
Loci p-value chromosome start end geneDescription
A 2.046584849E-2 1 98542 98699 tyrosine kinase
B 5.67849483E-20 2 8958437 8958437 endocytosis
...
但是,当我想用以下代码打印数据框时:
write.table(table,"~/Desktop/genes.txt", sep = "\t", row.names = FALSE, col.names = TRUE, quote = FALSE, append = FALSE)
我得到以下内容:
Loci p-value chromosome start end geneDescription
A 2.046584849E-20 1 98542 98699 tyrosine kinase
B 5.67849483E-20 2 8958437 8958437 endocytosis
我知道它与" \ t"有关,但是在打印时R可以自动调整列的宽度以获得上面的原始数据框吗?
谢谢。
答案 0 :(得分:0)
不,因为这是标签格式问题,可以通过增加编辑器的tabwidth来部分解决。尝试规范化列名的长度。
max.name <- max(sapply(colnames(table), nchar))
colnames(table) <- sapply(colnames(table), function(name) paste0(c(name, rep(" ", max.name - nchar(name))), collapse = ''))
答案 1 :(得分:0)
也许您只是在寻找capture.output
或sink
。
在以下示例中,将x
替换为实际文件名。这只是为了说明目的。
x <- tempfile()
capture.output(mydf, file=x)
readLines(x)
# [1] " Loci p.value chromosome start end geneDescription"
# [2] "1 A 2.046585e-02 1 98542 98699 tyrosinekinase"
# [3] "2 B 5.678495e-20 2 8958437 8958437 endocytosis"
x <- tempfile()
sink(file = x)
mydf
sink()
readLines(x)
# [1] " Loci p.value chromosome start end geneDescription"
# [2] "1 A 2.046585e-02 1 98542 98699 tyrosinekinase"
# [3] "2 B 5.678495e-20 2 8958437 8958437 endocytosis"
readLines
步骤只是为了向您显示写入“文件”的内容。