Я провожу систематический обзор и имею набор исследований, содержащих как среднее значение (SD), так и медиану (IQR). Я пытаюсь создать функцию для преобразования медианы (IQR) в среднее значение (SD) с помощью метода Вана (2014). Я пометил медианные данные как "число" m (например, 34m
), а IQR — это диапазон (например, 16-45
).
Вот набор данных:
Я могу вычислить как среднее значение, так и sd из медианы и IQR (с использованием метода Вана) со следующим синтаксисом:
Я пытаюсь обернуть это в функцию для дополнительных групп вмешательства:
Когда я пытаюсь использовать функцию:
Я постоянно получаю ошибку:
Я знаю, что это, вероятно, что-то простое, но ваша помощь была бы очень признательна.
Ура, Бен
library(tidyverse)
data <- tibble(
study = c(1,2,3),
age_median = c(52m, 42m, 69m),
age_iqr = c("18-74", "38-55", "60-91")
number = c(65,30,45)
)
# Calculate Age Mean from Median
data <- data |>
separate_wider_delim(age_median, "m", names = c("age_median", NA)) |>
separate_wider_delim(age_iqr, "-", names = c("age_iqr_low", "age_iqr_high"), too_few = "debug") |>
mutate_at(c("age_median", "age_iqr_low", "age_iqr_high"), as.numeric) |>
mutate(age_mean = (age_median + age_iqr_low + age_iqr_high)/3)
# Calculate Age SD from IQR
data <- data |>
mutate(age_sd = (age_iqr_high- age_iqr_low)/(2*qnorm((0.75*number - 0.125)/( number+ 0.25), 0,1)))
# Function to convert median into mean
med_to_mean <- function(median_col, iqr_col){
data |>
separate_wider_delim({{median_col}}, "m", names = c("median_col", NA)) |>
separate_wider_delim({{iqr_col}}, "-", names = c("iqr_col_low", "iqr_col_high"), too_few = "debug") |>
mutate_at(c("{{median_col}}", "iqr_col_low", "iqr_col_high"), as.numeric) |>
mutate({{median_col}} = (median_col + iqr_col_low + iqr_col_high)/3)
return({{median_col}})
# Calculate Age SD from IQR
data <- data |>
mutate({{IQR_col}} = (iqr_col_high- iqr_col_low)/(2*qnorm((0.75*number - 0.125)/( number+ 0.25), 0,1)))
return({{iqr_col}})
}
data <- data |> med_to_mean(age_median, age_iqr)
Error in med_to_mean(age_median, age_iqr) :
unused argument (age_iqr)