Улучшить ввод функции без запятой в R - PullRequest
1 голос
/ 26 мая 2020

Я пытаюсь упростить ввод функции. Функция состоит в том, чтобы ввести имя ученого и получить страницу результатов поиска ученого в Google.

Текущий ввод - get_academics <- function("Stephen", "Hawking"), и мне интересно, есть ли способ сделать ввод get_academics <- function("Stephen Hawking"), и функция все еще работает. Это потому, что это имя человека, и странно записывать запятую между ними.

get_academics <- function(q, b){

  text <- paste0("https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=", q, "+", b)

  return(text)
}

Текущий ввод функции

get_academics("Stephen", "Hawking")

Требуемый ввод функции

get_academics("Stephen Hawking")

Ответы [ 2 ]

2 голосов
/ 26 мая 2020

Вы можете использовать gsub для замены пробелов символами +:

get_academics <- function(name){
  name <- gsub(" ", "+", name, fixed = TRUE)

  paste0("https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=", name)
}

get_academics("Stephen Hawking")
#[1] "https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=Stephen+Hawking" 
1 голос
/ 26 мая 2020

Вариант на основе разделения (см. Примечания):

 get_academics <- function(q){
   split_name <- unlist(strsplit(q,"\\s"))
   q <- split_name[1]; b <- split_name<-split_name[2]

   text <- paste0("https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=", q, "+", b)

   return(text)
 }

Результат:

 get_academics("Stephen Hawking")
[1] "https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=Stephen+Hawking"

ПРИМЕЧАНИЯ

  • Это может сбой, если пробел больше единицы
  • Он также не сработает, если пользователь использует другой разделитель, например -
...