使用daterange对data.frame进行子集设置以进行绘图输出时出现问题
我正在尝试使用shiny创建一个R应用程序。它由一个sliderInput组成,允许用户选择日期范围的最小和最大日期,用于对将绘制为ggplot条形图的数据进行子集设置 我在获取输入值以将data.frame子集时遇到问题,data.frame随后将用于在条形图上绘图。我通过R控件拥有我的子集代码,它正在生成正确的数据,但是我尝试将输入值用作限制因素的尝试在我尝试在应用程序上运行时遇到了问题 我的代码如下: 用户界面 服务器.R使用daterange对data.frame进行子集设置以进行绘图输出时出现问题,r,date,dataframe,shiny,subset,R,Date,Dataframe,Shiny,Subset,我正在尝试使用shiny创建一个R应用程序。它由一个sliderInput组成,允许用户选择日期范围的最小和最大日期,用于对将绘制为ggplot条形图的数据进行子集设置 我在获取输入值以将data.frame子集时遇到问题,data.frame随后将用于在条形图上绘图。我通过R控件拥有我的子集代码,它正在生成正确的数据,但是我尝试将输入值用作限制因素的尝试在我尝试在应用程序上运行时遇到了问题 我的代码如下: 用户界面 服务器.R library(shiny) library(RMySQL) li
library(shiny)
library(RMySQL)
library(quantmod)
library(ggplot2)
shinyServer(function(input, output) {
#here i create function to scope data
getDataSubSet <- function(dataFrame, column2Filter, rangeStart, rangeEnd){
rangeStart1<-strptime(rangeStart,format = "%Y-%m-%d %H:%M:%S")
rangeEnd1<-strptime(rangeEnd,format = "%Y-%m-%d %H:%M:%S")
dataFrame[dataFrame[column2Filter] >= rangeStart1 & dataFrame[column2Filter] <= rangeEnd1,]
}
output$timeline <- renderPlot({
#to create reactive data....
Candy_Sales_Working <- reactive({
getDataSubSet(Candy_Sales, "Sales_date", input$days[1], input$days[2])
})
ggplot(Candy_Sales_Working(), aes(Candy_Sales_Working()[candyType])) +
geom_bar(stat="count")
})
})
全球
library(RMySQL)
con <- dbConnect(RMySQL::MySQL(), user = "user", password = "pw", dbname = "candy",
host = "candy.com", port = ....)
Candy_Sales = dbGetQuery(conn = con, statement = "Select * from candy_sales")
Candy_Sales <- transform(Tape_Span,
Sales_Date = as.POSIXlt(strptime(Sales_Date, "%Y-%m-%d %H:%M:%S")))
Candy_Sales_Working <- Candy_Sales
start = strptime(min(Candy_Sales$Sales_Date), format = "%Y-%m-%d %H:%M:%S")
last = strptime(max(Candy_Sales$Sales_Date), format = "%Y-%m-%d %H:%M:%S")
candy_types = unique(Candy_Sales$candyType)
错误说明未实现这些类型的比较发现错误,原因是dataFrame[column2Filter]应改为写入dataFrame[[column2Filter]]
抱歉,我忘了统计错误,这是因为这些类型的比较没有在ggplot行中实现,它似乎应该是ggplotTape_Span_工作,aes…在这里传输代码时是一个拼写错误,感谢您指出它,您也有Candy_Span_工作在server.R和global.R开头的其他地方。应该选择不同的名称注意,您可能可以忽略服务器中的名称。R,当我的思路是实现sliderInput以直接影响从数据库检索的数据集时,它就在那里;因此,不需要将其保留在R上。但这将是我的下一个阶段。
library(RMySQL)
con <- dbConnect(RMySQL::MySQL(), user = "user", password = "pw", dbname = "candy",
host = "candy.com", port = ....)
Candy_Sales = dbGetQuery(conn = con, statement = "Select * from candy_sales")
Candy_Sales <- transform(Tape_Span,
Sales_Date = as.POSIXlt(strptime(Sales_Date, "%Y-%m-%d %H:%M:%S")))
Candy_Sales_Working <- Candy_Sales
start = strptime(min(Candy_Sales$Sales_Date), format = "%Y-%m-%d %H:%M:%S")
last = strptime(max(Candy_Sales$Sales_Date), format = "%Y-%m-%d %H:%M:%S")
candy_types = unique(Candy_Sales$candyType)
dataFrame[dataFrame[[column2Filter]] >= rangeStart1 & dataFrame[[column2Filter]] <= rangeEnd1,]