время назад я сделал это функции:Применить свою собственную функцию dplyr tbl_df
vap.vector <- function (x, y) {
y[is.infinite(y)] <- NA
y[y == 0] <- NA
logtasa <- log(y)
datos <- data.frame(x, logtasa)
datos <- na.omit(datos)
lmdatos <- lm(logtasa ~ x, data = datos)
es <- qt(0.975, lmdatos$df.residual) * summary(lmdatos)$coefficients[2, 2]
vap <- summary(lmdatos)$coefficients[2, 1]
vec <- c(vap = vap, es = es, lwr = vap - es, upr = vap + es)
round((1 - exp(vec)) * -100, 2)
}
vap_ <- function (df, x, y) {
x = lazyeval::lazy_eval(x, df)
y = lazyeval::lazy_eval(y, df)
vap.vector(x, y)
}
vap <- function (df, x, y)
vap_(df, lazyeval::lazy(x), lazyeval::lazy(y))
У меня есть этот набор данных
https://drive.google.com/file/d/0Bw2XRcfksYZuX1R5bG9oZzdhZ2M/view?usp=sharing
, и я хочу сделать:
tbl_df %>% group_by(code, sex) %>% vap(year, values)
или
tbl_df %>% group_by(code, sex) %>%
summarise(vap = vap.vector(year, values)[1],
lwr = vap.vector(year, values)[3],
upr = vap.vector(year, values)[4]
)
и, как результат, data.frame с колонками кода, пола и vap, lwr и upr.
но я не могу этого сделать. Я второй Подход я получаю:
Error: 0 (non-NA) cases
Существует односвязный способ сделать это, или мне нужно быть @hadley
Я работаю на Windows, с R 3.2.2 и 0.4.3 dplyr. Спасибо заранее ...
Вы пытаетесь написать метод? –