Выбор падежей в операторе Switch case в R - PullRequest
0 голосов
/ 29 января 2020

Прошу прощения, если это кажется глупым sh вопросом, но я хочу спросить, всегда ли регистр в операторе switch case должен быть строкой для выбора регистра в R? Следующий код выдает ошибку:

day = 2
weekday <- switch(day,
                  1 = "Sunday",
                  2 = "Monday",
                  3 = "Tuesday",
                  4 = "Wednesday",
                  5 = "Thursday", 
                  6 = "Friday",
                  7 = "Saturday",
                  "Invalid Input!!")
print(weekday)

Но этот код работает отлично:

day = 2
weekday <- switch(day,
                  '1' = "Sunday",
                  '2' = "Monday",
                  '3' = "Tuesday",
                  '4' = "Wednesday",
                  '5' = "Thursday", 
                  '6' = "Friday",
                  '7' = "Saturday",
                  "Invalid Input!!")
print(weekday)

Почему день, когда число совпадает с символом в регистре переключения?

1 Ответ

0 голосов
/ 29 января 2020

Если выражение, проверяемое в switch(), является числом, тогда случаи сопоставляются по позиции, поэтому вы можете опустить имена аргументов и выполнить:

day = 2
weekday <- switch(day,
                  "Sunday",
                  "Monday",
                  "Tuesday",
                  "Wednesday",
                  "Thursday", 
                  "Friday",
                  "Saturday",
                  "Invalid Input!!")
print(weekday)
# Output:
# [1] "Monday"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...