2014-05-04 20 views
0

我遇到了將數據導入R的大問題。原來的數據集超過5GB,這在我的筆記本電腦中總共不到4GB RAM。數據集中存在未知數量的行(至少有成千上萬行)。我想知道是否可以選擇說第2000行加載到R,這樣我仍然可以將數據放入我的工作記憶中?是否有可能從R中極其龐大的數據集中讀取所選行R

+1

請參閱'read.table'的'nrows'參數。 –

+0

是使用'read.table',如果你需要跳過一些行數,可以使用'skip'。 – CCurtis

+1

另一種選擇是將數據存儲在數據庫中並使用r中的sql – Max

回答

4

正如Scott提到的,您可以限制從nrowsread.table(及其變體,如read.csv)的文本文件中讀取的行數。

您可以使用此參數與skip參數一起讀取數據集中後面的塊。

my_file <- "my file.csv" 
chunk <- 2000 
first <- read.csv(my_file, nrows = chunk) 
second <- read.csv(my_file, nrows = chunk, skip = chunk) 
third <- read.csv(my_file, nrows = chunk, skip = 2 * chunk) 

您可能還需要閱讀「大內存和外的存儲器中的數據」的high-performance computing task view的部分。

+0

請注意:'2e4'是20,000。 OP要求2,000 –

+0

@RichardScriven固定。 –