R闪亮:数据集未传递到函数
问题描述:
这是我的server.R。R闪亮:数据集未传递到函数
- 我创建的数据()使用反应
- 我称为数据(),使用我创建StructureAutomation的功能。但是,传递给StructureAutomation的数据()是而不是。
- 注意:StructureAutomation函数在functions.R中定义。它期望数据集作为第一个输入参数。
server.R
source("./functions.R")
options(shiny.maxRequestSize=40*1024^2)
function(input, output) {
data <- reactive({
xdata <- input$inFile
if (is.null(xdata))
return(NULL)
ydata = read.csv(xdata$datapath,header=input$header,sep=",")
data = ydata[order(ydata[,1],ydata[,2]),]
data
})
output$structure <- renderTable({
data=data()
StructureAutomation(data,nlevels=input$level,buildout=FALSE)
as.data.frame(count(node))
})
}
答
将数据传递到你必须在你的反应事件中返回的数据的功能。
source("./functions.R")
options(shiny.maxRequestSize=40*1024^2)
function(input, output) {
data <- reactive({
xdata <- input$inFile
if (is.null(xdata))
return(NULL)
ydata = read.csv(xdata$datapath,header=input$header,sep=",")
data = ydata[order(ydata[,1],ydata[,2]),]
return(data)
})
output$structure <- renderTable({
data=data()
StructureAutomation(data,nlevels=input$level,buildout=FALSE)
as.data.frame(count(node))
})
}
而正如迈克怀斯已经提到的,我不会命名该函数,输出和跟随变量相同。
答
谢谢大家!这是一个愚蠢的错误。
我应该宣布数据为全局变量。
感谢您的帮助!
runStructure <- eventReactive (input$runButton, {
xdata = input$inFile
if (is.null(xdata))
return(NULL)
ydata = read.csv(xdata$datapath,header=input$header,sep=",")
data <<- ydata[order(ydata[,1],ydata[,2]),]
StructureAutomation(data,nlevels=input$level,buildout=FALSE)
as.data.frame(count(node))
})
你能否提供一个[可重现的例子](http://*.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? – jsb
“不合格”是什么意思?它是否返回null?顺便说一句,我不会重复使用变量名称“数据”。这必然会导致名称冲突和错误的混淆。 –