Я работаю с набором данных 16Gb. Это, конечно, слишком велико для загрузки в оперативную память, поэтому мне нужно использовать какой-то метод обработки больших данных в R. Мой набор данных состоит из множества переменных, и большинство из них являются символьными переменными, такими как имена и адреса. Я хочу выполнять очистку/редактирование данных, например создавать новые переменные на основе существующих и геокодировать адреса. Я пробовал работать с пакетом ff, но не смог заставить его работать. Прежде всего, я не мог правильно преобразовать свой набор данных в файл ffdf. Во-вторых, когда я как бы делал это, я не мог выполнять очистку данных так, как это работало раньше на обычном фрейме данных.
Пример моей проблемы с примером набора данных:
#create example dataset similar to mine with strings
df2 <- read.table(text='npi dier getal mubilair
51 "aap" een tafel
52 vis twee stoel
53 paard twee zetel
54 kip drie fouton
55 beer vier fouton
56 aap vijf bureau
57 tijger zes bank
58 zebra zeven sofa
59 olifant acht wastafel
60 mens acht spiegel', header=T, sep='')
dfstring <- df2[,-1]
rownames(dfstring) <- df2[,1]
write.csv(dfstring, "~/UC Berkeley/Research/dfstring.csv")
library(ff)
# creating the ff file
headset = read.csv(file="~/UC Berkeley/Research/dfstring.csv", header = TRUE, nrows = 5000)
headclasses = sapply(headset, class)
str(headclasses)
dfstring.ff <- read.csv.ffdf(file="~/UC Berkeley/Research/dfstring.csv", first.rows=5000, colClasses=headclasses)
#doesn't work error:scan() expected 'an integer', got '"51"'
headclasses [c(1)] = "factor"
dfstring.ff <- read.csv.ffdf(file="~/UC Berkeley/Research/dfstring.csv", first.rows=5000, colClasses=headclasses)
dfstring.ff
#set all variables to factor
dfstring.ff$getalmubilair <- paste(dfstring.ff$getal, dfstring.ff$mubilair, sep = ' ')
#doesn't work error: assigned value must be ff
getalmubilair <- paste(dfstring.ff$getal, dfstring.ff$mubilair, sep = ' ')
getalmubilair
#doesn't work creates an empty object
Мои вопросы:
Прежде всего, ff пакет для использования в моем состоянии, много символьных переменных в больших данных?
Если это так, как загрузить мой файл в правильный файл ff? (Что делать, например, с first.rows или colClasses)
Какие операции можно выполнять с файлами ff, чем они отличаются от операций, которые вы будете использовать с обычным фреймом данных?
Где найти понятное руководство/пошаговое руководство по пакету ff Я видел некоторые, но они очень технические, и я не мог их пройти.
На заметку: я попытался удалить ненужные переменные, используя требование colClasses, следующим образом:
#Delete the unnecessary variables:
headclasses[c(1,2)]= "NULL"
Однако я получил следующую ошибку:
Ошибка в repname(colClasses, colnames(x), по умолчанию = NA): следующие имена аргументов не совпадают
Это могло бы работать быстрее, если бы я мог немедленно удалить ненужные переменные в моем реальном наборе данных. Итак, как мне это сделать?