缺失值干扰Jarque-Bera检验,求正确处理NA的R代码
解决Jarque-Bera检验中缺失值导致失效的问题
moments包的jarque.test()函数不支持na.rm参数,你直接添加该参数不会生效,因此无法自动剔除缺失值。正确做法是先手动过滤掉NA值,再执行检验。
以下是两种可行的代码方案:
方案1:基础R语法处理
先提取item1中无缺失值的子集,再传入检验函数:
library(moments) # 过滤NA值 clean_item1 <- mydata$item1[!is.na(mydata$item1)] # 执行Jarque-Bera检验 jarque.test(clean_item1)
也可以用na.omit()简化写法:
library(moments) jarque.test(na.omit(mydata$item1))
方案2:tidyverse管道风格(适配dplyr)
如果你习惯使用tidyverse系列工具,可采用管道语法:
library(moments) library(dplyr) mydata %>% pull(item1) %>% # 提取item1列 na.omit() %>% # 剔除缺失值 jarque.test() # 执行检验
用你提供的数据集测试,以上代码均可正常运行并返回正确的检验结果。
内容的提问来源于stack exchange,提问作者Espejito
相关产品推荐
相关产品推荐

