【问题标题】:Remove index column in read.csv删除 read.csv 中的索引列
【发布时间】:2015-07-07 20:10:34
【问题描述】:

Prevent row names to be written to file when using write.csv 的启发,我很好奇是否有办法使用read.csv() 公式忽略R 中的索引列。我想将文本文件导入 RMarkdown 文档,并且不希望行号显示在由 RMarkdown 生成的 HTML 文件中。

运行以下代码

write.csv(head(cars), "cars.csv", row.names=FALSE)

生成如下所示的 CSV:

speed   dist
 4      2
 4      10
 7      4
 7      22
 8      16
 9      10

但是,如果您将这个无索引文件读回 R(即read.csv("cars.csv")),则索引列会返回:

.   speed dist
1    4     2
2    4     10
3    7     4
4    7     22
5    8     16
6    9     10

我希望解决方案能像在 read.csv() 语句中包含 row.names=FALSE 一样简单,就像使用 write.csv() 一样,但是在我运行 read.csv("cars.csv", row.names=FALSE) 之后,R 变得时髦并返回“无效”行.names 的规范”错误消息。

我试过read.csv("cars.csv")[-1],但只是删除了速度列,而不是索引列。

如何防止行索引被导入?

【问题讨论】:

  • row.names=FALSErow.names="FALSE" 之间的区别是您的问题或代码中的错字吗?
  • 胖手指;我会更新我的问题
  • @HipHopPhysician,我怀疑是否有一种方法可以让您删除索引。这是包括 RStudio 在内的 R IDE 将始终拥有的东西。但是,如果您找到删除索引的解决方案,请分享!

标签: r csv


【解决方案1】:

为什么?:这个问题似乎与之前创建数据的子集过程有关。当我通过 read/write.csv 往返数据时,我有一个文件不断返回一个讨厌的索引列。

底线: read.csv 完整地获取一个文件并输出一个数据帧,但必须先读取该文件,然后才能进行任何其他操作,例如删除列。

简单的解决方法:幸运的是,从新数据框中删除列非常简单:

df <- read.csv("data.csv")
df <- df[,-1]

【讨论】:

    【解决方案2】:

    如果您保存对象,则不会有行名。

         x <- read.csv("cars.csv")
    

    但是如果你打印它(到 HTML),你将使用 print.data.frame 函数。默认情况下将显示行号。如果我在我的降价块中使用以下(作为最后一行),我没有显示行号:

     print(read.csv("cars.csv"), row.names = FALSE)
    

    【讨论】:

      猜你喜欢
      • 2022-12-29
      • 2013-03-26
      • 2019-10-23
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 2019-12-30
      • 2014-09-11
      • 1970-01-01
      相关资源
      最近更新 更多