R 的 summarize 函数中的 Ifelse 语句:dplyr

Ifelse statement within R's summarize function: dplyr

如果访问符合 R 中的条件,我正在尝试计算提供者进行的访问次数。在注释掉的短语中,我可以获得每个提供者的正确总访问次数,但是当我尝试设置一个 if 语句,我让提供商重复了多次,而不是正确的访问次数。

TeleHealth_Counts %>%
  group_by(TeleHealth_Counts$`Visit Provider`) %>%
  summarize(Video_Count = ifelse(`Type` ==  "Video Visit New", NA, sum(`Visit Count`, na.rm = TRUE)))
  #summarize(Tele_Count = sum(`Visit Count`, na.rm = TRUE))

我面临的另一个问题是,当我将此代码分配给一个变量以便下载数据时,我收到一个错误:summarise() regrouping output by 'TeleHealth_Counts$Visit Provider' (用 .groups 参数覆盖)。如何克服此错误或下载我在控制台中看到的数据框?

我尝试使用以下代码将其分配给变量、Tele_Count 和数据框 df_phys。

physicians <- unique(TeleHealth_Counts$`Visit Provider`)
df_phys <-data.frame(physicians)

Type == "Video Visit New" 创建一个长度与组中行数相同的向量,ifelse returns 输出与我们正在检查的条件相同的长度,因此它重复行.

尝试以下操作:

library(dplyr)

result <- TeleHealth_Counts %>%
  group_by(`Visit Provider`) %>%
  summarize(Video_Count = if(any(`Type` ==  "Video Visit New")) NA_real_ 
                          else sum(`Visit Count`, na.rm = TRUE))

您收到的消息是警告而不是 错误,因为它是 dplyr 1.0.0 以后的默认行为,除非您关闭警告。要创建上述数据框的 csv 文件,您可以使用 write.csv,如:

write.csv(result, 'result.csv', row.names = FALSE)