Я хочу найти не пропущенное значение каждой группы, связанной с наибольшим значением индекса, для многих столбцов.
Я довольно близко подошел к использованию sumrize_all with which.max, но я не уверен, как удалить NA из каждого вектора, прежде чем я найду последнее значение. Я читал об использовании na.rm в sumrize_all с такими функциями, как mean, но не уверен, как включить подобные функции без встроенной функции. Я пробовал na.omit, но он не обеспечивает решение, которое я ищу.
a <- head(iris, 10)
a$num <- 1:10
a$grp <- c("a","a","a","b","b","c","c","d","d","d")
a[10, "Species"] <- NA
a %>%
group_by(grp) %>%
summarize_all(funs(na.omit(.)[which.max(num)]))
grp Sepal.Length Sepal.Width Petal.Length Petal.Width Species num
<chr> <dbl> <dbl> <dbl> <dbl> <fct> <int>
1 a 4.70 3.20 1.30 0.200 setosa 3
2 b 5.00 3.60 1.40 0.200 setosa 5
3 c 4.60 3.40 1.40 0.300 setosa 7
4 d 4.90 3.10 1.50 0.100 NA 10
Я ожидаю, что все значения в столбце Species будут setosa, однако последнее значение - NA.