删除read.csv中的索引列

时间:2015-04-28 19:45:35

标签: r csv

受到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

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

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

如何阻止导入行索引?

2 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:0)

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

底线: read.csv 完整地获取一个文件并输出一个数据帧,但必须在任何其他操作(例如删除列)之前读取该文件。

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

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