Я хочу заменить apply()
(и его производные) функцией purrr
.
У меня есть data.frame, подобный этому:
> df
V1 V2 V3
1 NA 2 3
2 2 NA 3
3 3 3 NA
И я хочу применить две функции по очереди: min(x, na.rm = T)
и which.min(x)
и вернуть результаты в виде фрейма данных.
Если я знаю, сколько столбцов, я могу сделать, например. это:
pmap_dfr(df, function(V1, V2, V3) {data.frame(min = pmin(V1, V2, V3, na.rm = T),
where = which.min(c(V1, V2, V3)))})
min where
1 2 2
2 2 1
3 3 1
Как сделать так, чтобы pmap()
или любая другая функция purrr
принимала всю строку в качестве аргумента, как это делает apply()
?
func <- function(x) {data.frame(min = min(x, na.rm = T), where = which.min(x))}
> Reduce(rbind, apply(df,1, func))
min where
V2 2 2
V1 2 1
V11 3 1
Я, наверное, просто пропустил функцию или какой-то трюк. Спасибо за вашу помощь.