У меня есть куча данных, которые я хочу внести в некоторые изменения в использование пакетов tidyr, reshape/reshape2.Реабилитация, плавление и отливка на больших кадрах данных в R
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
Я использую следующий код для достижения этой цели:
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)
}
Теперь этот код работает, но не для больших dataframes. Некоторые из моих данных имеют сотни, если не тысячи переменных, и с использованием этого кода у меня заканчивается память или R просто сбой. Есть идеи?
Edit:
Кто-то заметил что-то о пакете Ф.Ф., но удалил свой комментарий. Во всяком случае, я посмотрел в этот пакет немного, но я даже не могу показаться, чтобы иметь возможность читать dataframe в R ...
Я пробовал: 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"'`
Я также попытался использовать 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