Я работаю с процедурой передискретизации в R (как с начальной загрузкой). У меня есть матрица ответов / независимых переменных, и я хотел бы сделать 999 выборок из этой матрицы для расчета для каждой статистики. Я работаю с их средним значением, средним отклонением и доверительным интервалом. Итак, я написал функцию для вычисления и возврата списка:
mydata <- data.frame(a=rnorm(20, 1, 1), b = rnorm(20,1,1))
myfun <- function(data, n){
sample <- data[sample(n, replace = T),]
model1 <- lm(sample[,1]~sample[,2])
return(list(model1[[1]][[1]], model1[[1]][[2]]))
}
result <- as.numeric()
result <- replicate(99, myfun(mydata, 10))
Затем у меня есть матрица в качестве вывода, в которой строки - это статистика, а столбцы - выборки (nrow = 2 и ncol = 99). Мне нужны среднее значение и SD для каждой строки, но когда я пытаюсь использовать функцию применения или даже цикл, появляется следующее сообщение:
In mean.default (newX [, i], ...): аргумент
не является числовым или логическим: возвращается NA
Кроме того:
is.numeric(result)
[1] FALSE
Мне это показалось странным, потому что у меня никогда не было такой проблемы с подобными процедурами.
Есть предположения?
list
? Если вы запуститеis.numeric(result[[1]])
, вы получите ожидаемоеTRUE
. - person Nick Criswell   schedule 22.12.2016return(c(model1[[1]][[1]], model1[[1]][[2]]))
- person R. Schifini   schedule 22.12.2016