【问题标题】:adding blank field AND column names in write.table在 write.table 中添加空白字段和​​列名
【发布时间】:2016-04-15 23:58:18
【问题描述】:

我正在使用 write.table 将矩阵输出为 .txt 文件。我正在尝试为行名添加一个空白列,并随后使用 col.names 参数添加列名。我已经看到很多关于如何做一个或另一个的答案,但没有一个显示如何同时做这两个。 (事后手动修复很容易,但如果其他人能够理解我的脚本(大约 1500 行长,并且是为科学出版物编写的),我非常希望将它全部包含在 R代码)。

我知道如果 col.names = NA 且 row.names = TRUE,则会添加一个空白列名。但是,我希望像这样使用 col.names 参数

write.table(x,"~/Desktop/Folder/myfile_x.txt",sep="\t",
row.names=TRUE,col.names=c("\",\"Name1","Name2","Name3",....) 

这给了我这样的输出

\,\"Name1"  Name2   Name3...
rowname1    0   0
rowname2    3   2
rowname3    3   7

我想去哪里

[BLANK] Name1   Name2...    
rowname1    0   0
rowname2    3   2
rowname3    3   7

第一个列名(用于行名/数字)是一个空白字段。

我知道我可以尝试使用 paste() 的解决方法,但如果可以使用 col.names,它会容易得多。提前致谢!

【问题讨论】:

  • 如果你只是使用col.names = c("Name1","Name2","Name3"),虽然它在文本文件中的行名上显示Name1,但当你读入它时,你会看到Name1实际上是第一列和列的名称包含 rownames 没有名称。这只是索引。
  • Teja 也是正确的顺便说一句,但是,问题是输出文件中的 colnames 之前不会有“\t”。换句话说,在电子表格或 excel 中打开文件后,您必须(如上所述)插入一个单元格以将列名向右移动一个单元格。

标签: r


【解决方案1】:

如果以下内容不相关或没有帮助,请帮助我更好地理解您的问题。我认为您只是希望将行名作为一列,可以说是“”列名。在这种情况下,您不需要 write.table 中的行名:

library(dplyr)
data("mtcars")
cbind(rownames(mtcars), mtcars) -> mtcars.nm
colnames(mtcars.nm)<-c("", colnames(mtcars))
mtcars.nm %>% 
  write.table(x=., file="tmp.txt", sep="\t", quote=FALSE, row.names=FALSE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 2013-05-31
    • 2018-09-21
    • 2014-03-15
    相关资源
    最近更新 更多