【发布时间】:2016-09-16 23:01:55
【问题描述】:
我正在尝试计算数据框中所有列的平均值,但出现错误:参数不是数字或逻辑:返回 NA。 这是我正在使用的代码:
UI.R
library(shiny)
library(shinydashboard)
library(plyr)
library(reshape2)
#library(data.table)
shinyUI(pageWithSidebar(
headerPanel("CSV Viewer"),
sidebarPanel(
fileInput('file1', 'Choose CSV File',
accept=c('text/csv', 'text/comma-separated-values,text/plain', '.csv'))
),
mainPanel(
tableOutput('data'),
verbatimTextOutput('mean')
)
))
server.UI
shinyServer(function(input, output,session) {
output$data <- renderTable({
inFile <- input$file1
if (is.null(inFile))
return(NULL)
data<-data.frame(read.csv(inFile$datapath, header=FALSE, sep=";"))
})
output$mean<-renderPrint({
mean(data)
})
})
我完全迷失了,我无法找出错误。请帮我。谢谢。
【问题讨论】:
-
我没有仔细查看您的代码,但您正在尝试获取
data.frame对象的平均值。查看?mean它表明数据帧不支持该功能。如果你想要一个特定的列意味着尝试mean(data$MY_COL) -
它仍然无法正常工作.. 还有其他方法可以计算数据帧的平均值吗?
-
数据框是什么意思?你想要数据框中每个值的平均值吗?你想要每列的平均值吗?每一行?还有什么?您打算如何处理分类变量?日期?其他非数字值?
-
我想要每一列的平均值,除了包含日期的列
-
lapply(data, function(x) {if(is.numeric(x)) return(mean(x); return(NA)})怎么样。