Прочитать файл и сохранить его в объект. [Нет отображения загруженных данных] в Shiny R
Я знаю, что есть несколько вопросов об этом, вот так.
Но я не мог понять решение моей проблемы от них.
Я хочу, чтобы загрузить файл в R через блестящий и назначить его объекту, скажем, имя объекта "Object_name".
Я использовал fileInput в ui.R и сделал это
fileInput('file1', h4('Choose Your Data File'),
accept=c('text/csv',
'text/comma-separated-values,text/plain',
'.OUT'))
Теперь я обращаюсь к "file1" и пытаюсь восстановить загруженный файл через file1$datapath. Я не мог на самом деле сделать это. Я получаю консольные ошибки как....
1. Error in terms.formula(formula, data = data) :
'data' argument is of the wrong type
А в графическом интерфейсе в сюжете его показ Error:'data' argument is of the wrong type
Я добавил этот кусок кода на сервере глянцевый сервер.R
mydata <- reactive({
inFile <- input$file1
if (is.null(inFile)) return(NULL)
object_name <- read.table(inFile$datapath, header = TRUE)
})
Разрешено ли получить доступ к файлу напрямую из канала данных, как я делаю выше. Почему он не загружает загруженные данные в "а".
Если кто-то знает ответ, пожалуйста, помогите мне.
Обновить:
Мой набор данных имеет заголовок = False. Поэтому, когда я загружаю данные, мне нужно изменить имена (мой набор данных), и тогда могут быть выполнены дальнейшие вычисления.
Учитывая этот код
a <- reactive({
inFile <- input$file1
if (is.null(inFile)) return(NULL)
read.table(inFile$datapath, header = TRUE)
})
Тем не менее я не могу получить доступ к a() [т.е. к нужным данным] и использовать его для дальнейших вычислений. Я не могу назначить, как names(a) <- c(.......)
снаружи реактивен, потому что выдает ошибку, если я это сделаю...
Error in names(a) <- c("Ei", "Mi", "hours", "Nphy", "Cphy", "CHLphy", :
names() applied to a non-vector
И я не могу сделать это внутри реактивного, потому что я могу назначать имена только после того, как данные "a" или "a()" готовы. так как я могу достичь этого.
1 ответ
В вашем server.r
тебе нужно сделать read.csv
(или любой другой, соответствующий вашему формату входного файла), чтобы получить данные. Что-то вроде:
MyData<-reactive({ read.csv(input$file1$datapath, ...) })
Где... какие еще аргументы вам нужны read.csv()
, Затем вы можете получить доступ к своим данным, ссылаясь на него как MyData()
,
Редактировать Если вы хотите добавить имена столбцов (которых нет в исходном.csv), вы можете использовать col.names
аргумент в read.csv()
,