Я пытаюсь загрузить данные из объектов фрейм данных всех .RData
файлов в указанном каталоге в одну таблицу данных. Вот как я пытался это сделать:
library(data.table)
fileList <- list.files("../cache/FLOSSmole", pattern="\\.RData$", full.names=TRUE)
dataset <- rbindlist(lapply(fileList, FUN=function(file) {as.data.table(load(file))}))
Однако результат отличается от ожидаемого (одна таблица данных, содержащая все данные) — она содержит только имена объектов фрейма данных из источника. .RData
файлов:
> str(dataset)
Classes ‘data.table’ and 'data.frame': 39 obs. of 1 variable:
$ V1: chr "lpdOfficialBugTags" "lpdLicenses" "lpdMilestones" "lpdSeries" ...
- attr(*, ".internal.selfref")=<externalptr>
> head(dataset)
V1
1: lpdOfficialBugTags
2: lpdLicenses
3: lpdMilestones
4: lpdSeries
5: lpdProjects
6: lpdProgrammingLanguages
Что я делаю не так? Мы очень ценим вашу помощь!
Моя среда R:
> sessionInfo()
R version 3.1.0 (2014-04-10)
Platform: x86_64-pc-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] data.table_1.9.2
loaded via a namespace (and not attached):
[1] plyr_1.8.1 Rcpp_0.11.1 reshape2_1.4 stringr_0.6.2 tools_3.1.0
fread
вместо.Rdata
.rbindlist(lapply(files, fread))
... - person Arun   schedule 08.07.2014fread()
является альтернативойdata.table
дляread.table()
. Если я собираю данные из первоисточников и хочу эффективно хранить их в виде кеша приложения (.RData
или.rds
), мне все равно придется использоватьsave()
иload()
илиsaveRDS()
иreadRDS()
соответственно, не так ли? - person Aleksandr Blekh   schedule 08.07.2014