Kwestia, w którą wierzę, to jak wpisano CurrentDay. Poprzednio został utworzony jako:Nieliczbowy argument na binarny błąd operatora w R
Transaction <- function(PnL, Day)
results <- list(a = PnL, b = Day)
return(results)
Zarówno PnL, jak i Day są wartościami liczbowymi.
Day <- Transaction(PnL, Day)["b"]
Gdzie transakcja zwróciła listę, a b jest liczbą całkowitą.
moving_avg <- function(StockData, MA, CurrentDay){
#MA = Days long the MA is
#CurrentDay = What day we are currently on
MAValue <- NULL
total <- 0
start <- CurrentDay - MA
for(i in 1:length(MA)) {
total <- total + StockData[[start, 4]]
start <- start + 1
}
MAValue <- total/MA
return(MAValue)
}
Ktoś wie, dlaczego otrzymuję ten błąd?
Błąd w CURRENTDAY - MA: Argument nienumeryczny do binarnego operatora
Proszę podać przykładowe dane i pokazać, w jaki sposób wywołuje się tę funkcję. Zobacz [jak utworzyć powtarzalny przykład] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). – MrFlick
Funkcja jest ok. Prawdopodobnie nazwałeś ją argumentem nieliczbowym. Podaj powtarzalną próbkę, na przykład @MrFlick. – smci
Myślę, że znalazłem problem, CurrentDay jest przypisany do zmiennej, którą wyznaczyłem z listy. Kiedy po prostu wydrukuję CurrentDay, dostaję $ b [1] 41 – BenLar