Я думаю, вы ищете функцию complete.cases()
. na.omit()
предназначен для удаления NA
значений в векторе, а не для удаления строк, содержащих NA
значений, из фрейма данных.
Кроме того, конструкция вашего фрейма данных немного сложна (подробности см. Ниже) ). Попробуйте это:
Data <- data.frame(date=index(AMZN), coredata(AMZN),
rsi22=RSI(Cl(Data), n=22),
rsi44=RSI(Cl(Data), n=44))
nrow(Data)
nrow(Data[complete.cases(Data),])
Обычно каждый столбец фрейма данных является вектором. Результаты RSI()
сохраняются в виде вектора. Когда вы говорите
Data$rsi22 <- data.frame(RSI(Cl(Data), n=22))
, вы делаете, что оборачиваете результаты в фрейм данных, а затем встраиваете его в другой фрейм данных (Data
), и это то, что вы можете юридически это делается в R, но это необычно и сбивает с толку многие стандартные функции обработки данных.