gpt4 book ai didi

r - Dplyr - 选择一列是否存在,如果存在则汇总

转载 作者:行者123 更新时间:2023-12-01 22:50:25 26 4
gpt4 key购买 nike

如果使用 dplyr 中的“contains”,我可以检查特定列是否存在。如果它不存在,我很难评估表达式的摘要。

这是我的代码片段:

  df <- Prod%>%
group_by(Entity)%>%
select(Entity,`Cum.Oil`,`Cum.Gas`,contains("EUR")%>%
summarise(Oil = mean(`Cum.Oil`), Gas = mean(`Cum.Gas`), EUR=mean(EUR))

如果 EUR 列不存在,如何忽略汇总表达式中的“EUR”表达式?

最佳答案

像这样的东西应该可以工作:

df <- Prod%>%
group_by(Entity)%>%
summarise(across(any_of(c('Cum.Oil', 'Cum.Gas', 'Eur')), ~mean(.x),
.names = '{.col %>% str_remove("Cum.")}' )

不过,如果没有一些 reprex 就无法测试。

提示:您还可以在 select 语句中使用 any_of:

df <- Prod%>%
group_by(Entity)%>%
select(any_of(c('Entity', 'Cum.Oil', 'Cum.Gas', "EUR"))

关于r - Dplyr - 选择一列是否存在,如果存在则汇总,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74466233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com