У меня в сеансе R загружено около 30 отдельных фреймов данных, каждый с разными именами.У меня также есть символьный вектор с именем mydfs
, который содержит имена всех этих фреймов данных, загруженных в мой сеанс R.Я пытаюсь перебрать mydfs и сохранить в виде файла rds каждый фрейм данных, перечисленный в элементах mydfs
, но по какой-то причине я могу сохранить только символьную строку с именем фрейма данных.пытается сохранить (не сам datafame).Вот смоделированный, воспроизводимый пример того, что у меня есть:
#Create vector of dataframes that exist in base r to create a reproducible example
mydfs<-c("cars","iris","iris3","mtcars")
#My code that creates files, but they don't contain my dataframe data for some reason
for (i in 1:length(mydfs)){
savefile<-paste0(paste0("D:/Data/", mydfs[i]), ".Rds")
saveRDS(mydfs[i], file=savefile)
print(paste("Dataframe Saved:", mydfs[i]))
}
Это приводит к следующему выводу журнала:
[1] "Dataframe Saved: cars"
[1] "Dataframe Saved: iris"
[1] "Dataframe Saved: iris3"
[1] "Dataframe Saved: mtcars"
Затем я пытаюсь прочитать в любом из файлов, которые я создал:
#But when read back in only contain a single character string of the dataframe name
a<-readRDS("D:/Data/iris3.Rds")
str(a)
chr "iris3"
Обратите внимание, что когда я снова читаю iris3.Rds в новую сессию R с использованием readRDS, у меня нет ожидаемого фрейма данных, но есть односимвольный вектор, содержащий имя фэймвараа не данные.
Я давно не программировал на R, поскольку мой текущий клиент предпочитал SAS, поэтому я думаю, что я каким-то образом путаю зацикливание макропеременных в SAS с R, и поэтому, когда я вызываю saveRDS, я 'м, передавая один символьный вектор вместо фактического кадра данных.Как я могу получить кадр данных для передачи в saveRDS вместо символа?
Спасибо, что помогли мне распутать мое мышление SAS с моим немного ржавым R мышлением.