嗨,在那里,我在互联网上看到什么是错误的,na.omit()函数没有删除与NA的行。你能帮帮我吗?
library(TTR)
library(quantmod)
library(doParallel) #this library is for parallel core processing
StartDate = "2010-01-01"
EndDate = "2020-03-20"
myStock <- c("AMZN")
getSymbols(myStock, src="yahoo", from=StartDate, to=EndDate)
gdat <-coredata(AMZN$AMZN.Close) # Create a 2-d array of all the data. Or...
Data <- data.frame(date=index(AMZN), coredata(AMZN)) # Create a data frame with the data and (optionally) maintain the date as an index
Data$rsi22 <- data.frame(RSI(Cl(Data), n=22))
Data$rsi44 <- data.frame(RSI(Cl(Data), n=44))
colnames(Data)
DatanoNA <- na.omit(Data) #remove rows with NAs发布于 2020-03-14 15:41:00
我想你是在找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中是合法的,但这是不寻常的,并且混淆了许多标准的数据处理功能。
发布于 2020-03-14 15:53:56
你可以试试complete.cases
DatanoNA <- Data[complete.cases(Data),]https://stackoverflow.com/questions/60684444
复制相似问题