簡體   English   中英

在R中處理大型數據集

[英]Handeling large datasets in R

我正在處理一個相對較大的數據集(每個文件5個2GB,為您提供一個數量級的表,其中一個表是150萬行x 270列),在這里我使用dplyr left_joint函數(在這些數據集和其他小表之間)。 這些表包含我不想丟失的字符串數據。 但是,使用處理大型數據集(如bigmemory或ff)的程序包會將字符串轉換為因數,然后轉換為數字,這意味着數據會丟失。 有沒有辦法在丟失信息的情況下操縱這些文件(使用我的8GB RAM)?

我不明白您說使用因素時信息丟失了。 例如,假設str是您的字符串列之一,則可以

str <- sample(sample(letters, replace = TRUE), 
              size = 1.5e6, replace = TRUE)
tab.str <- sort(unique(str)) # could use `letters` as lookup table
str.int <- match(str, tab.str)
all.equal(tab.str[str.int], str)

因此,基本上,您有作為查找表索引的整數來取回字符串。

但是,如果您使用big.matrix格式,則將無法使用dplyr ,但是我認為針對您的特殊情況重新實現左聯接相對容易。

探索Data.tables以對具有大型數據集的R進行任何類型的處理。 與R上的任何其他數據處理包相比,速度和效率是無與倫比的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM