Как добавить произвольные строки текста перед выводом write.csv () в R? - PullRequest
1 голос
/ 22 марта 2020

минимальный воспроизводимый пример

У меня есть этот код:

df <- data.frame(foo = 1:5, bar = 5:1)

bla <- "some text"

write.csv(df, "foobar.csv")

Я бы хотел, чтобы финальный файл foobar.csv выглядел так:

some text

"","foo","bar"
"1",1,5
"2",2,4
"3",3,3
"4",4,2
"5",5,1


более широкий контекст

Это часть блестящего приложения, в котором у меня есть бит в функции сервера:

  output$dlcsv <- downloadHandler(
    filename = function() {
      paste0(format(Sys.time(), "%Y%M%e%H%M%S"), ".csv")
    },
    content = function(file) {
      write.csv(datareactive(), file)
    }
  )

output$dlcsv - кнопка загрузки, а datareactive() это фрейм данных, который я экспортирую в CSV, названный в честь сегодняшней даты и времени. Я хотел бы добавить несколько строк в текстовый файл перед самими данными. Таким образом, решение вышеуказанного вопроса должно работать в этом контексте.

1 Ответ

5 голосов
/ 22 марта 2020

Вы можете просто использовать cat() для bla, а затем переключиться на write.table() с write.csv(), чтобы иметь возможность установить append = TRUE:

df <- data.frame(foo = 1:5, bar = 5:1)

bla <- "some text"

cat(bla, "\n\n", file = "foobar.csv")

write.table(df, "foobar.csv", sep = ",", append = TRUE)

Результирующий foobar.csv:

some text 

"foo","bar"
"1",1,5
"2",2,4
"3",3,3
"4",4,2
"5",5,1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...