我编写了一个自定义函数,该函数在不闪亮的情况下有效,但是当我尝试在我的闪亮应用程序中使用它时会返回错误
Error in rowMeans(data[, c:x]) :
'x' must be an array of at least two dimensions
所以它显然与rowMeans调用有关,但是我传递了一个数据帧,我已经更改了将数据框强制转换为数组的功能,但这没有用。我还尝试将函数放在服务器文件顶部的几个位置,在反应式表达式中,以及一个帮助者'文件如其中一个例子中所示,这是我希望它保留的地方。
我已经创建了一个有希望成为重现下面错误的最小示例。感谢您的任何帮助和建议!
shinyApp(
ui = fluidPage(
sidebarLayout(
sidebarPanel(selectInput('block','Choose Block',
c('1' = 1,
'2' = 2,
'3' = 3,
'4' = 4,
'6' = 6,
'8' = 8,
'12' = 12))),
mainPanel(tableOutput("test"))
)
),
server = function(input, output) {
DF<-data.frame(replicate(24,sample(0:10,13,rep=TRUE)))
block<- function(data, blocks){
data<-array(data)
month<-data.frame(seq(0,12))
testy<-data.frame(month)
y<-1
b<-blocks
a<-0
while(y<24){
a <- a + 1;
y <- a * b;
c <- y + 1 - b;
d <- "block";
e <- as.character(a);
f <- paste(d,e, sep = '');
z <- data.frame(rowMeans(data[,c:y]));
colnames(z)[1]<-f
testy <- cbind(testy,z)
}
return (testy)
}
output$test <- renderTable(
block(DF,as.numeric(input$block))
)
}
)
答案 0 :(得分:0)
我几乎删除了这个问题,因为它只会增加我的愚蠢问题列表,但我会留下它作为一个例子让人们更多地探索和思考你的Shiny应用程序在被调用/初始化时所做的事情。
我的上述示例不起作用,因为当应用程序初始化时,它调用的是rowMeans(data [1:1]),而这确实只是一个维度而不是两个维度的数组。在提出问题之前,我应该对我计划的所有闪亮电话进行全面测试。