мне нужно проанализировать некоторые смоделированные данные со следующей структурой:Создание функции R, чтобы использовать mclapply из пакета многоядерной
h c x1 y1 x1c10
1 0 37.607056431 104.83097593 5
1 1 27.615251557 140.85532974 10
1 0 34.68915314 114.59312842 2
1 1 30.090387454 131.60485642 9
1 1 39.274429397 106.76042522 10
1 0 33.839385007 122.73681319 2
...
где Н находится в диапазоне от 1 до 2500, а индексы образца методом Монте-Карло, каждый из образцов с 1000 наблюдений. Я анализировать эти данные с помощью следующего кода, который дает мне два объекта (fnN1, fdQB101):
mc<-2500 ##create loop index
fdN1<-matrix(0,mc,1000)
fnQB101 <- matrix(0,mc,1000) ##create 2500x1000 storage matrices, elements zero
for(j in 1:mc){
fdN1[j,] <- dnorm(residuals(lm(x1 ~ c,data=s[s$h==j,])),
mean(residuals(lm(x1 ~ c,data=s[s$h==j,]))),
sd(residuals(lm(x1 ~ c,data=s[s$h==j,]))))
x1c10<-as.matrix(subset(s,s$h==j,select=x1c10))
fdQB100 <- as.matrix(predict(polr(as.factor(x1c10) ~ c ,
method="logistic", data=s[s$h==j,]),
type="probs"))
indx10<- as.matrix(cbind(as.vector(seq(1:nrow(fdQB100))),x1c10))
fdQB101[j,] <- fdQB100[indx10]
}
Объекты fdN1 и fdQB101 являются 2500x1000 матрицы с предсказанными вероятностями в качестве элементов. Мне нужно создать функцию из этого цикла, которую я могу вызвать с помощью lapply() или mclapply(). Когда я обернуть это в следующей команде функции:
ndMC <- function(mc){
for(j in 1:mc){
...
}
return(list(fdN1,fdQB101))
}
lapply(mc,ndMC)
объекты fdN1 и fdQB101 каждый возвращается в виде матриц 2500x1000 нулей вместо предсказанных вероятностей. Что я делаю не так?
Можете ли вы, возможно, опубликовать некоторые примеры данных? Я предлагаю использовать 'dput' для вывода нескольких строк. –
@Jason: данные примера добавлены. Благодаря! – user1849779