提问者:小点点

R的总结函数中的Ifelse语句: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))

我面临的另一个问题是,当我将此代码分配给一个变量以便我可以下载数据时,我收到一个错误:通过'TeleHealth_Counts$访问提供程序'重新分组输出(用参数覆盖。组参数)。我如何克服这个错误或下载我在控制台中看到的数据框?

我尝试将其分配给变量、Tele_Count和数据帧df_phys下面的代码。

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

共1个答案

匿名用户

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

尝试以下操作:

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))

您收到的消息是一个警告,而不是一个可以安全忽略的错误,因为它是dplyr1.0.0以后的默认行为,除非您将警告静音。要创建上述数据帧的csv文件,您可以使用write. csv,如下所示:

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