首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >na.omit函数不删除包含NA的行。

na.omit函数不删除包含NA的行。
EN

Stack Overflow用户
提问于 2020-03-14 15:37:12
回答 2查看 831关注 0票数 0

嗨,在那里,我在互联网上看到什么是错误的,na.omit()函数没有删除与NA的行。你能帮帮我吗?

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-14 15:41:00

我想你是在找complete.cases()函数。na.omit()用于删除向量中的NA值,而不是从数据帧中删除包含NA值的行。

另外,您的数据框架结构有点不稳定(请参阅下面的详细说明)。试试这个:

代码语言:javascript
复制
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()的结果以向量的形式存储。当你说

代码语言:javascript
复制
Data$rsi22 <- data.frame(RSI(Cl(Data), n=22))

您要做的是将结果封装在一个数据框架中,然后将其嵌入另一个数据框架(Data),这在R中是合法的,但这是不寻常的,并且混淆了许多标准的数据处理功能。

票数 2
EN

Stack Overflow用户

发布于 2020-03-14 15:53:56

你可以试试complete.cases

代码语言:javascript
复制
DatanoNA <- Data[complete.cases(Data),]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60684444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档