2017-08-02 61 views
2

我想加載一個csv文件。但我只需要一定的專欄中,我並不需要所有如何只讀R指定列?

這工作

library(data.table) 
dt <- fread("C:/test.csv", nrows=1000, select=c(1,3,5)) 

但我希望通過自己的名字來選擇列,而不是他們的順序編號。我怎樣才能做到這一點?

#this does not work 
dt <- fread("C:/test.csv", nrows=1000, select=c(col1,col3,col5)) 
+1

您可以爲所有其他列的'colClasses'矢量(你不希望)'「NULL」' –

+0

該文件包含超過1000列。我只需要選擇其中的50個。有什麼方法可以指定我需要什麼,而不是我不/謝謝你! – john

+1

查看文檔,您可以將相關的(50)列名提供給'select'參數。 「select:保留列名稱或數字的向量,放下其餘部分。」 –

回答

4

使用sqldf包:

library(sqldf) 

dt <- read.csv.sql(file = file.choose(), sql = "SELECT col1, col2, ..., coln FROM file", header = TRUE) 

其中COL1,COL2,......,科隆是你所需的列,以及文件=您從目錄中選擇文件。