【问题标题】:group_by error within the user-defined-function用户定义函数中的 group_by 错误
【发布时间】:2022-07-19 23:18:04
【问题描述】:
df_devw %>% 
    group_by(year, wage_tile) %>% 
    summarize(mean_engi = mean(d_engi)) %>%
    pivot_wider(names_from = year, values_from = mean_engi)enter code here

tbl <- function(x){
    df_devw %>%
    group_by(year, wage_tile) %>%
    summarize(mean_value = mean(x)) %>%
    pivot_wider(names_from = year, values_from = mean_value)
    }
tbl(df_devw$d_engi)

您好,我正在为 R 中的用户定义函数苦苦挣扎。

为什么上面的两个代码打印的结果不一样? 使用用户定义函数的第二个代码在不使用 group_by 的情况下打印结果。 它打印整个数据集的平均值(不是按'year'和'wage_tile')

谢谢。

【问题讨论】:

    标签: r dataframe user-defined-functions


    【解决方案1】:

    该函数可以修改为传递对象名和列名(不加引号),然后使用 curly-curly ({{}}) 运算符返回列的值

    f1 <- function(dat, x){
        dat %>%
        group_by(year, wage_tile) %>%
        summarize(mean_value = mean({{x}})) %>%
        pivot_wider(names_from = year, values_from = mean_value)
        }
    

    -测试

    f1(df_devw, d_engi)
    

    【讨论】:

      猜你喜欢
      • 2018-05-12
      • 2021-12-22
      • 2018-11-01
      • 1970-01-01
      • 2010-11-17
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      • 2018-02-20
      相关资源
      最近更新 更多