Использование цикла for в сочетании с формулой (мыши) для создания нескольких объектов (результатов) формулы - PullRequest
0 голосов
/ 09 ноября 2018

Я использую mice для вменения моих данных. Он имеет удобную функцию, которая создает матрицу прогнозирования для вашего кадра данных на основе корреляции между переменными.

LINK

Поскольку у меня есть несколько наборов данных, которые необходимо вписать, и это занимает довольно много времени, я хочу создать матрицу прогнозирования для каждого df в ls() с помощью цикла for. Пример виньетки выглядит следующим образом:

require(mice)
require(lattice)
set.seed(123)

ini <- mice(nhanes, pred=quickpred(nhanes, mincor=.3), print=F)
ini$pred
##     age bmi hyp chl
## age   0   0   0   0
## bmi   1   0   0   1
## hyp   1   0   0   1
## chl   1   1   1   0

Я бы хотел сделать что-то вроде:

for (i in ls())  {
  pred[[i]]=quickpred(ls(i), mincor=.3)
}

Однако я не могу правильно понять синтаксис. Идея состоит в том, что он создает экземпляр pred для каждого элемента в ls(). Я посмотрел на ссылки ниже, но я не могу понять это правильно:

1. R Создание объектов в цикле с именем ..

2. для цикла для вывода различных объектов ..

РЕДАКТИРОВАТЬ: С некоторой помощью я смог продвинуть свой ответ на следующее:

pred = list()
for (i in 1:length(ls()))  {
pred[[i]]=quickpred(get(ls()[i]), mincor=.3)
}

Я не успел провести тщательное тестирование, но пока не получил ошибки.

...