0
我有困難把一些代碼放到一個單獨的文件中。在哪裏把代碼工作在輸入文件(Shiny,R)
下面的代碼工作:
ui.R
library(shiny)
shinyUI(fluidPage(
titlePanel("Uploading Files"),
sidebarLayout(
sidebarPanel(
fileInput('file1', 'Choose CSV File',
accept=c('text/csv',
'text/comma-separated-values,text/plain',
'.csv')),
tags$hr()
),
mainPanel(
tableOutput('contents')
)
)
))
server.R
library(shiny)
library(dplyr)
shinyServer(function(input, output) {
getData <- reactive({
inFile <- input$file1
if (is.null(inFile)) return(NULL)
data = read.csv(inFile$datapath)
### CleanData
data = data %>%
mutate_each(funs(toupper)) %>%
mutate_each(funs(gsub("[[:punct:]]", " ", .))) %>%
mutate_each(funs(str_trim)) %>%
mutate_each(funs(rm_white)) %>%
sample_frac(1)
})
output$contents = renderTable({
getData()
})
})
但是如果我把一些代碼放到一個單獨的文件,這不是」工作。
ui.R不會改變
server.R
library(shiny)
library(dplyr)
shinyServer(function(input, output) {
getData <- reactive({
inFile <- input$file1
if (is.null(inFile)) return(NULL)
data = read.csv(inFile$datapath)
### CleanData
source('CleanData.R')
})
output$contents = renderTable({
getData()
})
})
CleanData.R(在筆記本電腦上的同一目錄)
data = data %>%
mutate_each(funs(toupper)) %>%
mutate_each(funs(gsub("[[:punct:]]", " ", .))) %>%
mutate_each(funs(str_trim)) %>%
mutate_each(funs(rm_white)) %>%
sample_frac(1)
它不工作,給錯誤
Error in UseMethod("tbl_vars") :
no applicable method for 'tbl_vars' applied to an object of class "function"
有人知道如何解決這個問題?非常感謝
嗨,複合問題通常氣餒。將你的問題分解成單個問題可能是有意義的。 – pete23
謝謝@ pete23我會編輯它。 –
'CleanData.R'中是否有函數?嘗試在'reactiveServer(函數(輸入,輸出))'行後面調用'source('CleanData.R')''。然後,在你的'getData()'中調用CleanData中的函數名稱 – tospig