【问题标题】:How to quote first row only when writing R .csv files仅在编写 R .csv 文件时如何引用第一行
【发布时间】:2017-01-12 06:37:45
【问题描述】:

我是 R 新手,并试图将 data.frame 导出为 csv 文件,但第一行包含需要引用的字符串,其中其余数据是数字(但 NA 作为一些选项写为“NA”),不应被引用。我的代码是:

class(mt.collapsed) <- 'numeric';
write.csv(mt.collapsed, 'NI_mtVars_phenoFile_161212.dat', row.names = T, quote = F)

我的问题是:如何以适当的方式编写上述矩阵?

我曾想过弹出第一行并使用“quote = T”保存,然后将除第一行之外的所有行写入“quote = F”。这对我来说似乎有点业余。

谢谢

所以,>900 列,这里是前 3 列,但除了第 1 列是 id(如 row.name)之外,所有其他列的格式/样式与下面相同。

抱歉...没有运气将其格式化为表格:

id      00010;T;C   00025;AC;A  
X110020 1           2   
X110030 1           2   
X110050 1           2   
X110150 1           NA  

输出:

    > str(mt.collapsed[, 1:3]) 
num [1:678, 1:3] 1 1 1 1 1 1 1 1 1 1 ... 
- attr(*, "dimnames")=List of 2 
..$ : chr [1:678] "X110020" "X110030" "X110050" "X110080" ... 
..$ : chr [1:3] "00010;T;C" "00025;AC;A" "00044;C;CG" 

【问题讨论】:

  • 你的矩阵是什么样的?你可以只使用列名而不是第一行吗?设置类并不一定会如此......您可以通过转换引入NAs。显示 head(mt.collapsed)(也许 str(mt.collapsed) 会提供很好的信息。
  • 第一行以“id”作为第一个单元格,接下来的约 900 列的代码,如“00065;C;T”(它是 GenABEL 导入的表型数据文件),跨度>
  • 张贴head(mt.collapsed)str(mt.collapsed) 将提供很好的信息。 请将这些结果编辑到您的问题中。
  • 我们需要了解您的数据结构来帮助您。您说您有“矩阵”,但是在发布您的数据之后似乎不太可能。看起来像data.frame?是row.names 还是实际的数据列?请发帖str(mt.collapsed[, 1:3])
  • 请将其编辑到您的问题中并将其格式化为代码(对表格执行相同操作)以使内容更具可读性。

标签: r csv


【解决方案1】:

也许使用第一行作为矩阵的列名?代码:

foo = matrix(c(1,2,3,4,5,6), ncol = 2)
colnames(foo) = c("a", "b")

给出以下带有命名列的矩阵。

     a b
[1,] 1 4
[2,] 2 5
[3,] 3 6

然后,当您将其写入 .csv 文件时:

write.csv(foo, "foo.csv", row.names = F)

文件包含:

"a","b"
1,4
2,5
3,6

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 2023-01-30
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多