Совершенно новый для R здесь и не опытный кодер.Я хочу создать простую функцию для загрузки внешнего файла через R блестящий, но файл не будет иметь фиксированное количество столбцов и может иметь или не иметь имя столбца.
В случае, когда сырой файл делаетне имеет заголовка, я хочу, чтобы имя первого столбца было «Дата», а остальные столбцы 2,3,4 ..., n - «Инвестиция 1», «Инвестиция 2», «Инвестиция 3», ..., "Investment n-1" соответственно
Вот мой текущий код, сторона сервера,
server <- function(input, output) {
rawdata <- reactive({
file_to_read = input$file
if(is.null(file_to_read)) {
return()
}
data <- read.table(file_to_read$datapath, sep = input$sep, header =
input$dataheader)
})
addcolumn <- reactive({
if(input$dataheader = FALSE) {
paste("Date",colnames(rawdata()[,1]))
for (i in 2:ncol(rawdata())) {
paste("Investment " + i, colnames(rawdata()[,i]))
}
}
})
output$datatable <- renderTable({
If(input$dataheader = FALSE) {
addcolumn(rawdata())
} else {
rawdata()
}
})
и сторона пользовательского интерфейса,
dashboardBody(
tabItems(
tabItem(
tabName = "import",
fluidRow(
box(
title = "Instructions",
solidHeader = TRUE,
width = 12,
status = "warning",
height = 120,
textOutput("instructionsImport")
),
box(
solidHeader = FALSE,
width = 3,
status = "primary",
fileInput("file","Choose a file to upload"),
radioButtons("sep","Separator",choices = c(Comma = ",", Space = " ",Period = ".", Tilde = "~", minus = "-")),
checkboxInput("dataheader","File has header?")
),
box(
title = "Uploaded Data",
solidHeader = TRUE,
width = 9,
status = "primary",
tableOutput("datatable")
)
)
),
В идеале,Я хотел бы, чтобы операция по добавлению имени столбца выполнялась один раз после импорта и создавалась результирующая таблица данных вместо создания реактивной функции для добавления столбца.
Спасибо