我试图计算一组变量的插值中位数。我的数据框看起来像这样:
# A tibble: 6 x 8
id eu_image eu_insurance eurobonds free_movement_welfare eu_cn_solidarity country_code country_party_m
<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_m计算插值平均值时:
party_median <- newdata %>%
group_by(country_party_m) %>%
dplyr::summarise_at(c( "eu_image",
"eu_cn_solidarity",
"eurobonds",
"free_movement_welfare",
"eu_insurance"),
funs(interp.median(., na.rm=TRUE))) %>%
as.data.frame()
我收到以下错误:
summise_impl (.data,dots) 中的错误:列eu_cn_solidarity
的长度必须为 1(汇总值),而不是0
我已经检查了类似问题的 previous 问题,但我找不到一个可行的解决方案。

基于 A.Suliman 的评论:您可以添加一个ifelse
函数来检查所有条目是否为NA
:
party_median <- newdata %>%
group_by(country_party_m) %>%
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
函数来选择变量。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(64条)