Создайте пустой CSV файл в R

У меня есть R script, который запускает набор функций на нескольких наборах данных и создает набор моделей концентрации-ответа. То, что я хотел бы сделать, - это сохранить параметры модели и другие результаты в файле csv.

Мой план состоит в том, чтобы script создать пустой файл csv, а затем по мере продвижения script результаты добавляются в этот файл csv. Каждый раз, когда выполняется script, я хочу, чтобы результаты были перезаписаны.

Я попытался создать пустой файл, используя

system("copy /y NUL results.csv > NUL")

чтобы создать файл, но файл не создан. Эта команда (т.е. copy/y NUL results.csv > NUL) корректно работает при запуске непосредственно в терминале Windows.

Я пропустил что-то простое? Системой является Windows XP.

Спасибо всем!

Ответ 1

Что-то не так с file.create(), которое переносимо в разных операционных системах?

file.create("my.csv")
# [1] TRUE

Затем вы можете добавить к файлу, например. используя аргумент append=TRUE для write.table(), возможно, вот так:

df <- data.frame(a=1:4, b=4:1)
write.table(df, file="my.csv", sep=",", row.names=FALSE, append=TRUE)
write.table(df, file="my.csv", sep=",", row.names=FALSE, 
            col.names=FALSE, append=TRUE)

EDIT Если вы будете делать тонну записи в каждый файл, это может сэкономить значительное время, чтобы открыть соединение с файлом один раз и закрыть его только после завершения. Если это не так, то описанный выше подход работает отлично.

Ответ 2

Поскольку это команда оболочки, вы должны использовать оболочку вместо системы.

shell("copy /y NUL results.csv > NUL")

ИЗМЕНИТЬ. Более портативное решение:

cat(NULL,file="results.csv")

Ответ 3

как насчет просто

echo > results.csv

Ответ 4

Используйте обрезать.

f <- file("my.csv", open="w")
truncate(f)