2012-08-07 83 views

回答

2

一般來說,使用R的限制將取決於數據集適合內存的程度,而不是數據集的大小或維數的特定限制。越接近填充可用RAM(包括所有其他您正在計算機上執行的操作),就越有可能遇到問題。

但是請記住,有足夠的內存來簡單地負載數據集到內存中往往是一個非常不同的東西,有足夠的內存來操縱的數據集,通過R的本質往往會涉及大量的對象複製。這反過來又導致了一整套專用的R軟件包,允許以最小(或零)的複製來操作R中的數據......

我可以說你的具體情況最多,因爲非常有限您提供的信息量很可能是您的數據似乎不會超出您的物理RAM限制,但它會足夠大,因此您需要小心編寫智能代碼,因爲許多幼稚方法可能會結束起來相當緩慢。

+0

你能否就這些「智能」方法提出一些建議?任何材料或鏈接也將非常有幫助。 – user297850 2012-08-07 16:54:32

3

我在R方面看不到任何障礙。看起來像一個相當適中的數據集。它可能可能取決於你如何做到這一點,但你沒有描述任何代碼,所以這仍然是一個未知數。

+0

的方法,我讀的CSV文件testMatrix = read.csv( 「testMatrix.csv」 09月= 「」),那會讓對大小限制什麼不同嗎?謝謝。 – user297850 2012-08-07 02:25:09

+0

它不應該。下面是一個創建10,000列data.frame的小測試:'ncol(read.csv(text = paste(1:10000,collapse =「,」)))',注意:沒有錯誤。整體規模如我所說謙虛。我閱讀的數據框是這個尺寸的10倍。如果你比你所處的位置更高,RAM確實需要足夠,但R不是限制因素。 – 2012-08-07 05:09:12

1

以上答案正確地討論了內存問題。我最近一直在導入一些大型的excel文件。我強烈推薦使用XLConnect包來讀入(和寫入)文件。

options(java.parameters = "-Xmx1024m") # Increase the available memory for JVM to 1GB or more. 
             # This option should be always set before loading the XLConnect package. 
library(XLConnect) 

wb.read <- loadWorkbook("path.to.file") 
data <- readWorksheet(wb.read, sheet = "sheet.name")