受到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]
,但这只是删除了速度列,而不是索引列。
如何阻止导入行索引?
答案 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]