Невозможно добавить текст в фрейм данных в downloadHandler - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь добавить информацию об источнике в загруженную таблицу, которая содержит фрейм данных.Я использую обработчик загрузки файла, чтобы загрузить файл.Я реализовал загрузку только кадра данных без добавления дополнительного текста, и это прекрасно работает.При попытке добавить текст с таблицей я получаю файл загрузки в формате csv, но информация об источнике отсутствует, и в последней строке есть NA в 1-м и 2-м столбцах соответственно.Остальная часть последней строки пуста.

Вот мой код для обработчика загрузки, который не производит добавленный текстовый вывод:

downloadHandler(
filename = function() {
paste("Estimation_", Sys.Date(), ".csv", sep="")
},
content = function(file) {
  df <- localTable()
  df[nrow(df)+1,] <- NA    

  df[nrow(df),1] <- "Source: This is the source information for the table"
  write.csv(df, 
          file,
          na = "",
          row.names=FALSE,
          append = TRUE)
},
contentType = "text/csv",
outputArgs = list(label = "Download Table")
)

С другой стороны, я пробовал ту же функциональностьотдельно работает нормально.Вот код, который я использовал в отдельном R-скрипте, который делает то же самое.

df = data.frame(hello=rnorm(1:5), world=rnorm(1:5));
df[nrow(df)+1,] <- NA
df[nrow(df),1] <- "Source: This is the source information for the table"
write.csv(df, 
      file ="abc.csv",
      na = "",
      row.names=FALSE)

Я не знаю, связана ли проблема именно с Shiny, или с чем-то еще.Обратите внимание, что я использую этот код как часть Flexdashboard, которая запускает файл RMD для генерации вывода.Я пробовал несколько других способов создания фрейма данных, как показано ниже;и затем переход к downloadHandler, но не повезло.

dlTable <- reactive({
    df_results <- localTable()
   df_notes <- "Source: This is the source information for the table"
   df_to_dl <- rbindlist(list(df_results,df_notes))
   return(df_to_dl)
})

Любые предложения и помощь высоко ценится.

Спасибо

...