Ich habe eine Spalte in einem Datenrahmen, der aus Ticker-Codes wie AAPL (für Apple-Aktie), TWTR (für Twitter) und viele mehr besteht. Ich versuche, eine neue Spalte zu erstellen, in der die Anzahl der Aktien für jeden Ticker-Code zurückgegeben wird, die aus den API-Bestandsdaten berechnet wurden.API Call pro Zeile von Datenrahmen in R
Aber als ich den Code unten lief, gab die neue Spalte "Stock Quantity" NA für jede Zeile zurück. Hat jemand die Lösung dafür?
library(Quandl)
portfolio <- data.frame(Code=c("AAPL", "TWTR", "MSFT"),
startingPeriod=c("2015-01-01", "2015-01-01", "2015-01-01"),
Investment=c("5000", "10000", "15000"),
stringsAsFactors=FALSE)
numberofStock <- function(pf) {
API <- Quandl(paste0("WIKI/", pf$Code), type = "raw",
start_date = pf$startingPeriod, end_date=Sys.Date())
pf["StockQuantity"] <- floor(pf$Investment_01/tail(API$Open,1))
return(pf)
}
numberofStock(portfolio)
Vielen Dank Ihr Code funktioniert und es ist viel einfacher und sauberer. – Fxs7576
Übrigens, können Sie erklären, warum wir für diesen Zweck sowohl "Do" - als auch "With" -Funktionen verwenden müssen? – Fxs7576
Wenn der Code innerhalb einer do-Schleife eva ist luated wird mit ausgewertet. als ein Stück des Datenrahmens. Um Spalten im Chunk zu erhalten, können Sie entweder. $ Code, oder Sie können den Code innerhalb der Umgebung auswerten. – bramtayl