我希望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)的方差分析
感谢您的任何建议!
答案 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))