R/snapshot_perfomance_functions.R

Defines functions means_generator oecd_means_by_country subject_mean_by_country oecd_info

#' Generates dataframe based on OECD membership.
#'
#' @param data A dataframe.
#' @param oecd_string A string.
#' @return A dataframe based of \code{data} filter by OECD == \code{oecd_string}
#' @examples
#' oecd_info(students, "Yes")
#' oecd_info(teachers, "No")
oecd_info <- function(data, oecd_string) {
    conditions <- c("Yes", "No")
    if (oecd_string %in% conditions) {
        data <- dplyr::filter(.data = data, OECD == oecd_string)
    } else {
        data.frame()
    }
}

subject_mean_by_country <- function(info, pvlabel, column_name) {
    mean_pv <- intsvy::pisa2015.mean.pv(
        pvlabel = toupper(pvlabel),
        by = "CNTRYID",
        data = info
    )
    selected_data <- dplyr::select(.data = mean_pv, c(CNTRYID, Mean))
    dplyr::rename(.data = selected_data, Country = CNTRYID, !!column_name := Mean)
}

oecd_means_by_country <- function(data) {
    colname <- colnames(data[2])
    filter_data <- mean(na.omit(data)[, 2])
    df <- data.frame("Country" = "OECD", "Mean" = filter_data)
    names(df)[2] <- colname
    return(df)
}

means_generator <- function(reading_df, math_df, science_df) {
    data <- dplyr::left_join(reading_df, math_df, by = "Country")
    dplyr::left_join(data, science_df, by = "Country")
}
Lykansito/RPisaStats documentation built on Oct. 7, 2020, 2:30 a.m.