Shiny on index(日期)中的子集

时间:2017-09-08 20:47:25

标签: r shiny subset nan which

我正在使用包含Date列(第一列)的数据框(stock)。我希望按日期对其进行子集化。

stock_date <- reactive(which(stock()[, 1] == input$date[1]) - 1)
stock_sub <- reactive(stock()[-(1:stock_date(), ])

input$date[1]dateRangeInput的开始日期,第一行是找到该日期的索引。第二行是根据我们得到的索引对数据帧进行子集化。

虽然我得到的错误是

长度为0的参数

我尝试使用match代替which,但收到了相同的错误代码。

任何人都可以提供帮助?非常感谢!

输入是这样的:

textInput("ticker", "Stock ticker:")
dateRangeInput("date", "Date Range:")

股票来自:

stock2 <-
    reactive(
      getSymbols(
        toupper(input$ticker),
        from = input$date[1] - 300,
        to = input$date[2],
        src = "google",
        auto.assign = F
      )
    )

  stock3 <- reactive(as.data.table(stock2()))
  stock <- reactive(as.data.frame(stock3()))

我还在控制台中尝试了以下功能:它完美无缺:

jpm <- getSymbols(
            "JPM",
            from = "2012-01-03",
            src = "google",
            auto.assign = F
          )
jpm <- as.data.table(jpm)
jpm <- as.data.frame(jpm)
which(jpm[, 1] == "2012-01-03")

返回1

1 个答案:

答案 0 :(得分:0)

我们应该将reactive函数放在stock.sub <- reactive({ value <- subset(stock(), stock()[, 1] >= input$date[1]) value }) 函数中并返回所需的data.frame。

示例:

      and (   ProductId = v_ProductId
           or CustomerId = v_CustomerId )