У меня большой список, merged_fin
, содержащий 39 фреймов данных. Наборы данных выглядят так:
> merged_fin[[1]]
sourceid dstid speed
1 177 1 0.010604494
2 46 4 0.010794178
3 100 7 0.007286781
> merged_fin[[2]]
sourceid dstid speed
1 721 12 0.013830787
2 23 15 0.016334978
3 274 16 0.015247266
...
Я хотел бы сохранить каждый набор данных в этом списке в отдельный файл .rds
в моем рабочем каталоге.
for (i in 1:length(merged_fin)){
saveRDS(merged_fin[[i]])}
Или
saveRDS(merged_fin[[1]])
Я получаю Error in saveRDS(merged_fin[[i]]) : 'file' must be non-empty string
.
lapply(names(merged_fin), function(i)
saveRDS(merged_fin[[i]], paste0(i, '.rds')))
Я получаю list()
, но файл не сохраняется в моем рабочем каталоге.
Примечания: (1) names(merged_fin)
выходы NULL
; (2) Я изначально закодировал merged_fin
как пустой список (merged fin <- list()
), прежде чем заполнять его объединенными наборами данных, которые я считывал из разных папок.
- Имеет ли проблема l ie в том, как я ссылаюсь на элементы списка?
- Это связано с тем, как
merged_fin
было первоначально определено?
Спасибо за вашу помощь.
Решение
В моем случае это был просто вопрос именования элементов моего списка, который предложил Минапарам. У меня был вектор, содержащий правильно упорядоченные названия городов, который назывался cities
. Я только что сделал names(merged_fin) <- cities
, и этого было достаточно, чтобы успешно запустить
lapply(names(merged_fin), function(i)
saveRDS(merged_fin[[i]], paste0(i, '.rds')))