Ich arbeite mit einem Datenrahmen (stock
), der eine Datumsspalte (erste Spalte) enthält. Ich möchte es nach dem Datum unterteilen.Subset in Shiny am Index (Datum)
stock_date <- reactive(which(stock()[, 1] == input$date[1]) - 1)
stock_sub <- reactive(stock()[-(1:stock_date(), ])
input$date[1]
das Datum Beginn ist von dateRangeInput
, ist die erste Zeile der Index dieses Datum zu suchen. Die zweite Zeile besteht darin, den Datenrahmen entsprechend dem von uns erhaltenen Index zu unterteilen.
Während der Fehler habe ich ist
Argument der Länge 0
Ich habe versucht, match
statt which
zu verwenden, aber erhielt den gleichen Fehlercode.
Jeder kann helfen? Danke vielmals!
Eingang ist wie folgt:
textInput("ticker", "Stock ticker:")
dateRangeInput("date", "Date Range:")
Lager ab:
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()))
Und ich habe auch versucht, die in der Konsole nach einer es funktionierte perfekt:
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")
gibt 1 zurück
Können Sie diese Frage stellen [reproduzierbaren] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? Es ist ein bisschen schwierig, ohne genau zu wissen, wie 'input $ date' und' stock() 'aussehen. Vielleicht wäre es ein guter Anfang, dies zuerst in einem nicht glänzenden (nicht reaktiven) Modus zu testen. Meine Vermutung ist jedoch, dass es keine Übereinstimmung gibt, also ist 'stock_date()' leer. – r2evans
Vielen Dank. Bitte beachten Sie mein Update – Arthur
Der komplette Code ist sehr lang und beinhaltet Plotten. Der Fehler tritt auf, wenn ich auf die Plot-Schaltfläche klicke. Aber ich bin mir sicher, dass mit der Handlung und anderen Architekturen nichts falsch ist, weil ich ihre Funktion auf andere Weise getestet habe und es funktioniert gut – Arthur