【问题标题】:Name of variable and variable in function变量名和函数中的变量
【发布时间】:2020-09-28 10:06:59
【问题描述】:

我正在使用以下函数

MeanMatch <- function(df1, df2){
  df2_means <- df2 %>% group_by(cyl) %>% summarise_all(mean,na.rm=TRUE)
  TempJoined <- df1 %>% left_join(df2_means,by='cyl')

现在我必须指定因子变量(来自库 ggplot2 中 mpg 数据集的“cyl”)。我想要做的是让用户将因子变量作为函数参数提供一次。喜欢:

MeanMatch <- function(df1, df2, FactorVar){
  df2_means <- df2 %>% group_by(FactorVar) %>% summarise_all(mean,na.rm=TRUE)
  TempJoined <- df1 %>% left_join(df2_means,by='FactorVar')

如果他们想使用 mpg 中的 cyl,那么他们可以只写 FactorVar=cyl 作为参数。但是当然函数的by='FactorVar' 部分不起作用。我该怎么做?

我不介意将其输入为MeanMatch(...,"cyl")MeanMatch(...,cyl) 的解决方案。

【问题讨论】:

    标签: r


    【解决方案1】:

    试试这个功能:

    library(dplyr)
    
    MeanMatch <- function(df1, df2, FactorVar){
      df2_means <- df2 %>% group_by_at(FactorVar) %>% summarise_all(mean,na.rm=TRUE)
      TempJoined <- df1 %>% left_join(df2_means,by=FactorVar)
    }
    

    并将其称为:

    MeanMatch(df1, df2,"cyl")
    

    【讨论】:

    • group_by("cyl") 不起作用。试试mpg %&gt;% group_by("cyl") %&gt;% summarise_all(mean,na.rm=TRUE)
    猜你喜欢
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 2019-02-12
    相关资源
    最近更新 更多