Рассмотрим этот пример
mydata <- data_frame(ind_1 = c(NA,NA,3,4),
ind_2 = c(2,3,4,5),
ind_3 = c(5,6,NA,NA),
y = c(28,34,25,12),
group = c('a','a','b','b'))
> mydata
# A tibble: 4 x 5
ind_1 ind_2 ind_3 y group
<dbl> <dbl> <dbl> <dbl> <chr>
1 NA 2 5 28 a
2 NA 3 6 34 a
3 3 4 NA 25 b
4 4 5 NA 12 b
Здесь я хочу для каждой group
регрессии y
на любую переменную, не пропущенную в этой группе, и сохранить соответствующий объект lm
в list-column
.
То есть:
- для группы
a
, эти переменные соответствуют ind_2
и ind_3
- для группы
b
, они соответствуют ind_1
и ind_2
Я попробовал следующее, но это не работает
mydata %>% group_by(group) %>% nest() %>%
do(filtered_df <- . %>% select(which(colMeans(is.na(.)) == 0)),
myreg = lm(y~ names(filtered_df)))
Есть идеи? Спасибо!