Я просмотрел все сообщения, которые мог найти в аргументах dplyr ::range () или order (), длины ошибок отличаются, но не нашел объяснения.
Я пытаюсь сделать функцию лучше (), который может вернуть наименьшее номинальное значение из таблицы данных о результатах госпитализации (dfout).Когда я копирую код прямо в R, он работает без ошибок, возвращая название больницы с самым низким уровнем смертности.Только когда я вызываю его как функцию, он говорит: «Ошибка в порядке (состояние, результат, больница): длина аргументов различается»
Функция: (обратите внимание, я использовал заглавные буквы для имен столбцов и не заглавные для переменных функций)
best <- function(state, outcome){
colnames(dfout) <- c("Hospital", "State", "Heartattack", "Heartfailure", "Pneumonia")
##Return hospital name with lowest 30 day mortality rate
arranged <- arrange(dfout, State, outcome, Hospital) ## arrange hospitals by state, mortality rate in the specified outcome in best() and alphabetically for the ties.
arranged1 <- arranged[arranged$State == state,] ## take the part of the ordered list where state = the state specified in best()
arranged1$Hospital[1]
Теперь, если я позвоню лучше («TX», Heartattack), я получу «Ошибка в порядке (состояние, результат, больница): длина аргумента различается», но если я просто запустите код и заменитесостояние и результат с "TX" и Heartattack я получаю больницу, как это
##Return hospital name with lowest 30 day mortality rate
arranged <- arrange(dfout, State, Heartattack, Hospital) ## arrange hospitals by state, mortality rate in the specified outcome in best() and alphabetically for the ties.
arranged1 <- arranged[arranged$State == "TX",] ## take the part of the ordered list where state = the state specified in best()
arranged1$Hospital[1]
[1] "CYPRESS FAIRBANKS MEDICAL CENTER"
Мой вопрос действительно: как может не работать функция, когда копируете тот же код вкомандная строка с переменными, указанными в работах.