Создайте пустой 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)