在何处放置在输入文件上工作的代码(Shining,R)

在何处放置在输入文件上工作的代码(Shining,R),r,input,shiny,R,Input,Shiny,我很难将一些代码放入单独的文件中 以下代码起作用: 用户界面 服务器.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

我很难将一些代码放入单独的文件中

以下代码起作用:

用户界面

服务器.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()

    })

})
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()

    })

})
它不起作用,给出了一个错误

Error in UseMethod("tbl_vars") : 
  no applicable method for 'tbl_vars' applied to an object of class "function"

有人知道怎么修吗?非常感谢

您得到了这个错误,因为当您
源代码
CleanData.R时,它是在全局环境中进行评估的,您没有定义
数据
,因此它指的是函数
数据
。您可以将
local=TRUE
添加到
source
调用中,以便在调用环境中对其进行评估

    source('CleanData.R', local=TRUE)

嗨,通常不鼓励使用复合问题。把你的问题分成几个单独的问题可能是有意义的。谢谢@pete23我会编辑它。在
CleanData.R
中有函数吗?尝试调用
source('CleanData.R')
表达式之外的
reactive
表达式,就在
shinyServer(函数(输入,输出))
行之后。然后,在
getData()
中调用cleandataThank@tospig
CleanData.R中的函数名(不是函数)。我必须把它写成函数吗?它解决了问题。非常感谢你@lagizelt
Error in UseMethod("tbl_vars") : 
  no applicable method for 'tbl_vars' applied to an object of class "function"
    source('CleanData.R', local=TRUE)