读取R中的CSV并按名称过滤列

时间:2019-02-09 22:10:03

标签: r csv readr

比方说,我有一个包含数十或数百列的CSV,我只想提取2或3列。我了解here所述的colClasses解决方案,但是代码变得非常难以阅读。

我想要pandas' read_csv中的usecols之类的东西。

加载所有内容并仅在事后选择不是一个解决方案(该文件太大,无法容纳在内存中。)

2 个答案:

答案 0 :(得分:5)

一种方法是使用软件包gamma。如果您知道SQL,则可以读入大文件,仅过滤所需的部分。

我将使用内置数据集tf.GraphKeys.TRAINABLE_VARIABLES使该示例可重现,然后将其首先保存到磁盘。

tf.GraphKeys.UPDATE_OPS

现在是问题了。
参数sqldf类似于iris指令中的内容。
请注意write.csv(iris, "iris.csv", row.names = FALSE) 周围的反引号。这是由于列名中的点字符。

row.names

最后清理。

write.csv

答案 1 :(得分:4)

我将使用包data.table,然后使用fread()指定要通过参数selectdrop保留/删除的列。来自?fread

  

选择要保留的列名称或数字的向量,其余部分删除。

     

drop要删除的列名或数字的向量,其余部分保留。

最好!