Запись RDA в CSV на R

Я пытаюсь написать сценарий для загрузки RDA по имени файла и записи эквивалентного файла в формате CSV.

Он почти готов (с загрузкой и записью), однако выходной CSV содержит вектор строк, возвращаемых load (), а не фрейм данных, на который ссылается load ...

$ cat convert.r
#!/usr/bin/env Rscript

argv <- commandArgs(TRUE)
inFile <- toString(argv[1])
print(inFile)

outFile <- gsub(".rda$", ".csv", inFile)
print(outFile)

inData <- load(inFile)
write.csv(inData, file=outFile)

Это команда + вывод ...

/convert.r data.rda
[1] "data.rda"
[1] "data.csv"
[1] "table.data"

Таким образом, вы можете видеть, как он выбирает имя входного файла из аргументов, создает правильное имя выходного файла, но inData является ссылкой на глобальный объект с именем table.data. Когда запускается write.csv, он просто содержит следующее:

$ cat data.csv
"","x"
"1","table.data"

Как мне заставить write.csv забрать фрейм данных из файла rda? Я понимаю, что существует текущий риск, если RDA содержит более одного кадра - может быть, он должен перебрать их и сделать file-frame.csv ?!


person Nick    schedule 04.09.2015    source источник


Ответы (1)


Очевидно, что лучший способ решить проблему самостоятельно - это задать вопрос публично.

Ответ: get()

inData <- load(inFile)
write.csv(get(inData), file=outFile)

(Ответ найден на https://stackoverflow.com/a/6316461/224707 greg-snow)

person Nick    schedule 04.09.2015