私はtidyr、reshape/reshape2というパッケージを使っていくつかの変更を加えたいというデータフレームがあります。大規模なデータフレームの再形成、溶け込み、鋳造R
setwd("C:\\...)
files = list.files(pattern="*.dta") #making a list for the files.
dflist <- list()
for (i in 1:length(files)){
dflist[[i]] <- read.dta13(files[i], nonint.factors = TRUE)
dflist[[i]] <- melt(dflist[[i]], id=c("C","Y","S","A"))
dflist[[i]] <- extract(dflist[[i]], variable, c('type', 'moment'), '^(.+)_([^_]+)$')
dflist[[i]] <- cast(dflist[[i]],...~type)
}
さて、このコードは、大きなデータフレームのために働くがない:
Y C S A B_B_m B_B_p C_m C_p D_m D_p
2000 "AUSTRIA" "total" "no" 33 44 55 66 77 99
2001 "AUSTRIA" "total" "no" 22 11 0 23 24 25
2002 "AUSTRIA" "total" "no" 88 45 56 47 38 39
2003 "AUSTRIA" "total" "no" 90 48 67 67 69 74
は、私はこれを達成するために、次のコードを使用し
"C" "Y" "S" "A" "moment" "B_B" "C" "D"
"AUSTRIA" 2000 "total" "no" "m" 33 55 77
"AUSTRIA" 2000 "total" "no" "p" 44 66 99
"AUSTRIA" 2001 "total" "no" "m" 22 0 24
"AUSTRIA" 2001 "total" "no" "p" 11 23 25
"AUSTRIA" 2002 "total" "no" "m" 88 56 38
"AUSTRIA" 2002 "total" "no" "p" 45 47 39
"AUSTRIA" 2003 "total" "no" "m" 90 67 69
"AUSTRIA" 2003 "total" "no" "p" 48 67 74
を来されなければなりません。私のデータフレームには数千もの変数がありますが、このコードを使用してメモリが不足しているか、Rがクラッシュしています。何か案は?
編集:
誰かがFFパッケージについて何かコメントが、そのコメントを削除しました。 ffdfbig <- read.csv.ffdf(file="dfbig.csv")
しかし、これは私にエラーを与えたが:
`Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, :
scan() expected 'an integer', got '"1001"'`
とにかく、私が試した...
を私は、このパッケージの中にビットを見てきたけど、私もRにデータフレームを読み取ることができるように見えることはできません
私もcolClasses
引数使用してみました:
sampleData <- read.csv("dfbig.csv", header = TRUE, nrows = 5)
> classes <- sapply(sampleData, class)
> ffdfbig <- read.csv.ffdf(file="dfbig.csv",header = TRUE, colClasses=classes)
をし、エラーの同じ種類だ:
Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, :
scan() expected 'an integer', got '"1"'
を
:(
どうすればいいですか? :( – Floris