【发布时间】:2021-05-18 07:15:43
【问题描述】:
我正在尝试创建一个函数,该函数返回特定条件下死亡率最低的医院。该函数的输入是状态和条件。我还应该指出我是 R 新手。我非常喜欢 dplyr 包中的函数,但似乎在使用 slice_min 函数并将变量传递给它时遇到了一些问题。如果有人可以建议什么是错误的以及如何纠正它,将不胜感激。我将在下面展示我尝试过的两个似乎不起作用的选项。
函数调用示例为:
best_hospital("CA","HeartFailure")
功能是
best_hospital <- function(state, disease_type){
library(dplyr)
library(janitor)
#Loads data
data_path <- c('D:/Data Science/CourseraR/Assign3 Info/outcome-of-care-measures.csv')
data_df <- read.csv(data_path, colClasses = "character")
#Replaces capitals, spaces and special characters in names
data_df <- data_df %>%
clean_names() %>%
select(state,hospital_name,
hospital_30_day_death_mortality_rates_from_heart_attack,
hospital_30_day_death_mortality_rates_from_heart_failure,
hospital_30_day_death_mortality_rates_from_pneumonia)
colnames(data_df) <- c("State", "HospitalName","HeartAttack", "HeartFailure", "Pneumonia")
data_df <- data_df %>%
filter(State == {{state}} ) %>%
select(State, HospitalName, {{disease_type}} )
# This DOES NOT work
# data_df <- data_df %>% slice_min(order_by = {{disease_type}}, with_ties = TRUE)
#This DOES NOT work
data_df <- data_df %>% slice_min(order_by = HeartFailure, with_ties = TRUE)
print(head(data_df))
}
我上面展示的两种方法都选择并返回数据。但不是与感兴趣列的最小值相关联的行(在本例中为心力衰竭)。欢迎任何帮助!谢谢
【问题讨论】: