Рассмотрим by
, который компактно заменяет split
и lapply
для операций группировки по факторам, таким как ticker .С одним фактором, выходные данные являются именованным списком того, что функция возвращает равным уникальному номеру фактора:
RSI_list <- by(SP, SP$ticker, function(sub) TTR::RSI(sub$price.close))
Если один из тикеров не поддерживает действительную цену закрытия, оберните вызов в tryCatch
и вернуть NA для этих проблемных случаев:
RSI_list <- by(SP, SP$ticker, function(sub)
tryCatch(TTR::RSI(sub$price.close),
error = function(e) return(NA)))