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

时间:2020-10-10 00:40:00

标签: r if-statement dplyr group-by summarize

如果访问符合R的资格,我要计算提供者的访问次数。用注释掉的短语,我可以为每个提供者提供正确的总访问次数,但是当我尝试设置一条if语句,我让提供者重复了多次,而不是正确的访问次数。

summarise()

我面临的另一个问题是,当我将此代码分配给变量以便下载数据时,出现错误:Visit Provider通过'TeleHealth_Counts $ .groups重新组合输出'(用physicians <- unique(TeleHealth_Counts$`Visit Provider`) df_phys <-data.frame(physicians) 参数覆盖)。如何克服此错误或下载在控制台中看到的数据框?

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

person_id    child      mom 

1            john       marry
2            mark       sophia
3            emma       null
4            alfonso    marry
5            sophia     null
6            marry      isabella
7            michael    emma
8            isabella   null

1 个答案:

答案 0 :(得分: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))

您收到的消息是警告,而不是safe to ignore错误,因为它是dplyr 1.0.0及更高版本中的默认行为,除非您使警告静默。要创建上述数据框的csv文件,您可以使用write.csv

write.csv(result, 'result.csv', row.names = FALSE)
相关问题