Я пытаюсь написать функцию, которая даст мне сводную таблицу для двух переменных. Расширяя свой вопрос здесь, я хотел бы включить значение p теста хи-квадрат для связи между предиктором и целью, а также. Как мне изменить функцию?
library(dplyr)
mean_mpg <- mean(mtcars$mpg)
# creating a new variable that shows that Miles/(US) gallon is greater than the mean or not
mtcars <-
mtcars %>%
mutate(mpg_cat = ifelse(mpg > mean_mpg, 1,0))
mtcars %>%
group_by(as.factor(cyl)) %>%
summarise(sum=sum(mpg_cat),total=n()) %>%
mutate(percentage=sum*100/total)
# Note: needs installation of rlang 0.4.0 or later
get_pivot <- function(data, predictor,target) {
result <-
data %>%
group_by(as.factor( {{ predictor }} )) %>%
summarise(sum=sum( {{ target }} ),total=n()) %>%
mutate(percentage=sum*100/total);
print(result)
}
Вот мой рабочий пример:
mtcars %>%
group_by(as.factor(cyl)) %>%
summarise(sum=sum(mpg_cat),total=n(),
pvalue= chisq.test(as.factor(.$mpg_cat), as.factor(.$cyl))$p.value) %>%
mutate(percentage=sum*100/total)
Я попробовал следующую функцию, но она не сработала.
get_pivot <- function(data, predictor,target) {
result <-
data %>%
group_by( {{ predictor }} ) %>%
summarise(clicks=sum( {{ target }} ),total=n(),
pvalue= chisq.test(.$target, .$predictor)$p.value) %>%
mutate(percentage=clicks*100/total);
print(result)
}