R语言的数据分析。如何在向量中描述NA位置的分布?

时间:2017-09-22 08:53:09

标签: r

我希望NA的位置分布在矢量中是均匀的(长度= 30,NA <6)。

这一长度是30,4 NA。很容易看到这些NA不均匀,主要在左边。

vector_x&lt; - c(NA,3,NA,1,NA,5,6,7,7,9,0,2,12,324,54,23,12,324,122,23,324 ,332,45,78,32,12,342,95,67,NA)

但我不知道使用哪种统计或测试来描述。然后我可以通过截止进行定量筛查。

现在,我有两个初步想法 为简化解决方案,所有NA似乎为0,所有数字似乎为1,以查看分布 或者我得到NA的索引,进行关于c(1,3,5,30)的方差分析

感谢您的任何建议!

2 个答案:

答案 0 :(得分:2)

您想要执行Mann-Whitney U test或Wilcoxon秩和检验(更能描述其所做的事情)

这对您的数据很容易

which(is.na(v))
# [1]  1  3  5 30

which(!is.na(v))
# [1]  2  4  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

wilcox.test(which(is.na(v)), which(!is.na(v)))

        # Wilcoxon rank sum test

# data:  which(is.na(v)) and which(!is.na(v))
# W = 29, p-value = 0.1766
# alternative hypothesis: true location shift is not equal to 0

检查wilcox.test是否按照我们预期的方式运行

wilcox.test(1:5, 6:10)  # low p value
wilcox.test(seq(1,10,2), seq(2,10,2)) # high p value

答案 1 :(得分:1)

如果我们需要NA元素的索引,请使用is.na转换为logical向量,然后使用which返回其为TRUE的数字索引

which(is.na(vector_x))
#[1]  1  3  5 30

或转换为二进制向量,其中0表示NA,1表示其他值

as.integer(!is.na(vector_x))