【发布时间】:2018-01-17 18:09:05
【问题描述】:
我正在尝试使用一个函数来生成一系列 KS 测试的 p 值。就我而言,我希望从我的 aaa 数据集中选择不同的前 M[i] 行,并经过几个步骤生成预测 glm 回归值 dd,最后比较每两个数据集以获得 KS 测试的 p 值。但是我的代码效果不佳。我使用模拟数据在下面附加了我的代码:
set.seed(1)
aaa <- matrix(runif(8000*950), 8000, 950)
ph = sample(rep(0:1,l=950))
kst <- function(M){
N = length(M)
aa = list()
bb = list()
cc = list()
dd = list()
ee = list()
p = 0
for (i in 2:N){
aa[[i]] = aaa[1:M[i],] ## class(aaa) is matrix
bb[[i]] = rbind(ph, aa[[i]])
cc[[i]] = as.data.frame(t(bb[[i]]))
dd[[i]] = glm(data = cc[[i]], formula = ph~., family = binomial)
ee[[i]] = ks.test(predict(dd[[i-1]]), predict(dd[[i]]))
p[i] = ee[[i]]$p.value
}
return(p)
}
kst(M = seq(50,950,by=50))
但是R说:
> kst(M = seq(50,950,by=50))
Error in UseMethod("predict") :
no applicable method for 'predict' applied to an object of class "NULL"
我认为我的 ks.test 循环也有错误,但我不知道如何修复它。 谁能帮我解决这个问题?提前致谢。
【问题讨论】:
-
无法在没有数据的情况下进行测试,但
i in 1:N-1看起来不对。试试1:3-1之类的小例子,看看你的想法。
标签: r