Функции в R полезны для избавления от повторяющихся строк кода и возможности быстрой смены переменных.Если вы просто хотите сделать то, что указано в вашем вопросе, то посмотрите код ниже.
AAPL<-function(){
getSymbols("AAPL", src = "yahoo")
candleChart(AAPL, up.col = "black", dn.col = "red", theme = "white", subset
= "2018-01-01/")
addSMA(n = c(10, 30)); addBBands()
return(NA)
}
StockPrice<-AAPL()
Аргумент возврата описывает, какие вычисления и переменные вы хотите вернуть из функции, поскольку они не сохраняются в глобальной среде.,Вам не нужно возвращать графики, они будут просто построены.
Ниже приведен более сложный пример функции, в которой мы присваиваем переменные A и B и возвращаем их вычисление переменной, котораяназывается функция.Я думаю, что это то, что полезно для функций в R.
My_Function<-function(A,B){
Test=A+B+4
return(Test)
}
Answer<-My_Function(1,2)
Answer_two<-My_Function(8,10)
Обратите внимание, что мы можем вызывать функцию бесконечное количество раз и присваивать любое число, которое мы хотим, A и B, и функция знает где угодноэто A и B для подключения значений, которые были введены во время вызова.
Я не уверен, как пользователь вводит символ акции, поэтому я подойду к этому с решением shiny
.
#simulated input from user
UserChoice<-"GOOG"
Stocks<-function(Symbol,Symbol2){
getSymbols(Symbol2, src = "yahoo")
candleChart(Symbol, up.col = "black", dn.col = "red", theme = "white",
subset = "2018-01-01/")
addSMA(n = c(10, 30)); addBBands()
return(NA)
}
# By using simulated user input we can apply the function to basically any
# four letter stock code by changing the `Stocks()` arguments.
if(UserChoice=="APPL"){
APPL<-Stocks(APPL,"APPL")
} else if (UserChoice=="GOOG"){
GOOG<-Stocks(GOOG,"GOOG")
} else {}
Обратите внимание, что Symbol
и Symbol2
являются аргументами, которые должны быть переданы функции, Symbol2
является символом
Теперь GOOG и APPL создаются переменными, которым ничего не назначено,чтобы сделать их равными чему-либо, необходимо назначить переменную и затем вернуть ее из функции.Допустим, мы хотим вернуть первую строку, просто установить ее равной переменной, а затем вернуть ....
....
a<-getSymbols("AAPL", src = "yahoo")
.....
return(a)