【问题标题】:R function to calculate means only in numeri variables in data frameR函数计算仅在数据框中的数字变量中
【发布时间】:2022-12-09 10:59:36
【问题描述】:

我有这个功能,但没有用,我需要帮助

结果返回缺失值

promedioXvariable <- function(df, cat) {
  res <- list()
  for (x in levels(df[[cat]])) {
    aux <- list()
    for (var in colnames(df)) {
      if(class(df[[var]]) == "numeric") {
        aux[[var]] <- with(df, tapply(var, x, mean))
      }
    }
    res[[x]] <- aux
  }
  return(res)
}

我需要在一个尽可能简单的函数中执行这个过程

【问题讨论】:

    标签: r function rstudio mean


    【解决方案1】:

    使用 dplyr,首先 select() 仅数字列,然后 summarize(across()) 这些以获取手段。如果您想在缺少值的情况下获得均值,请记住包含na.rm = TRUE

    使用 dplyr::starwars 作为示例数据:

    library(dplyr)
    
    starwars %>%
      select(where(is.numeric)) %>%
      summarize(across(everything(), mean, na.rm = TRUE))
    
    # A tibble: 1 × 3
      height  mass birth_year
       <dbl> <dbl>      <dbl>
    1   174.  97.3       87.6
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-03
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      相关资源
      最近更新 更多