我正在使用包含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
答案 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 )