R输出dataframe到txt文件:正负值对齐、空行与列间距调整问题
你可以通过预先格式化列内容再直接写入文件的方式解决所有问题,参考代码如下:
library(dplyr) # 提取所需列 gene_names_only <- select(deseq2_hits_table_df, Gene, L2F) # 格式化基因名列:统一宽度为15(可根据你的基因名最大长度调整),左对齐 gene_names_only$Gene <- format(gene_names_only$Gene, width = 15, justify = "left") # 格式化数值列:统一宽度为8(可根据你的数值位数调整),右对齐,保留5位小数,自动预留正负号位 gene_names_only$L2F <- format(gene_names_only$L2F, width = 8, nsmall = 5, justify = "right", scientific = FALSE) # 拼接两列,中间间隔1个空格,可自行修改空格数调整列间距 output_lines <- paste0(gene_names_only$Gene, " ", gene_names_only$L2F) # 直接写入文件,无多余空行 writeLines(output_lines, con = "all_samples_comparison_gene_list.txt")
对应你的三个需求说明:
- 正负值对齐:
format()函数处理数值列时,会自动给正数的负号位预留空白位置,保证所有数值字符串宽度一致,右对齐后负号就会和正数的首位完全对齐。 - 消除开头空白行:放弃用
capture.output()捕获print函数的输出,print方法默认会在输出前插入空行,直接用writeLines()写入拼接好的字符向量就不会出现多余空行。 - 调整列间距:
paste0()拼接两列时,中间添加的空格数可以自由调整,需要多大的间距就加几个空格,完全可控。
内容的提问来源于stack exchange,提问作者xfrostyy
相关产品推荐
相关产品推荐

