Есть несколько вопросов об этом на dplyr Github repo уже и, по крайней мере, один связанный вопрос SO, но ни один из них вполне охватывает мой вопрос - я думаю.
- Добавление нескольких столбцов в вызов duter mutate более или менее то, что я хочу, но для этого случая есть специальный случай (
tidyr::separate
), который не делает Мне кажется, я работаю для меня. - Эта проблема ( "суммировать или мутировать с функциями, возвращающими несколько значений/столбцов" ) говорит "use
do()
".
Здесь мой вариант использования: я хочу вычислить точные биномиальные доверительные интервалы
dd <- data.frame(x=c(3,4),n=c(10,11))
get_binCI <- function(x,n) {
rbind(setNames(c(binom.test(x,n)$conf.int),c("lwr","upr")))
}
with(dd[1,],get_binCI(x,n))
## lwr upr
## [1,] 0.06673951 0.6524529
Я могу сделать это с помощью do()
, но мне интересно, есть ли более выразительный способ сделать это (похоже, что mutate()
может иметь аргумент .n
как обсуждается для summary()...)
library("dplyr")
dd %>% group_by(x,n) %>%
do(cbind(.,get_binCI(.$x,.$n)))
## Source: local data frame [2 x 4]
## Groups: x, n
##
## x n lwr upr
## 1 3 10 0.06673951 0.6524529
## 2 4 11 0.10926344 0.6920953