R-误差计算按组内插均值

时间:2019-02-26 12:10:18

标签: r group-by dplyr median

我正在尝试为多个变量按组计算插值中位数。 我的数据框如下所示:

# A tibble: 6 x 8
  id            eu_image eu_insurance eurobonds free_movement_welfare eu_cn_solidarity country_code country_party_mass
  <chr>            <dbl>        <dbl>     <dbl>                 <dbl>            <dbl> <dbl+lbl>    <chr>             
1 CAWI200000100        4            4         4                     3                3 2            germany_7         
2 CAWI300000784        2            2         1                     1                1 3            italy_9           
3 CAWI100000787        3            3         2                     2                3 1            france_13         
4 CAWI500000081        3            2         2                     1                3 5            spain_2           
5 CATI500000067        4            3         2                     2                6 5            spain_3           
6 CAWI100000398        2            4         4                     2                5 1            france_2 

当我运行以下代码以计算分组变量 country_party_mass 的插值平均值时:

party_median <- newdata %>%
    group_by(country_party_mass) %>%
    dplyr::summarise_at(c(   "eu_image", 
                      "eu_cn_solidarity", 
                      "eurobonds", 
                      "free_movement_welfare", 
                      "eu_insurance"), 
    funs(interp.median(., na.rm=TRUE))) %>%
    as.data.frame()

我收到以下错误

  

summarise_impl(.data,点)中的错误:         eu_cn_solidarity列的长度必须为1(汇总值),而不是0

我已经检查过有关类似问题的先前问题,但是找不到可行的解决方案。

1 个答案:

答案 0 :(得分:2)

以A. Suliman的评论为基础: 您可以添加ifelse函数来检查是否所有条目都是NA

party_median <- newdata %>%
    group_by(country_party_mass) %>%
    dplyr::summarise_at(vars(c("eu_image", 
                      "eu_cn_solidarity", 
                      "eurobonds", 
                      "free_movement_welfare", 
                      "eu_insurance")), 
    ~ifelse(all(is.na(.)), NA_real_, interp.median(., na.rm=TRUE)))

请注意,funs函数现在已被软弃用(从dplyr 0.8.0.1开始),因此我改用“〜”表示法。另外,我使用vars函数来选择变量。

相关问题