改进R中没有逗号的函数输入。

问题描述 投票:0回答:1

我正在尝试简化一个函数输入。这个函数是输入一个学者的名字,并得到他们的google scholar搜索结果页。

目前的输入是 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")
r function loops apply
1个回答
2
投票

您可以使用 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
投票

分割式选项(见注释)。

 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"

注释

  • 如果空间大于一,可能会失败
  • 如果用户使用不同的定界符,如 -
© www.soinside.com 2019 - 2024. All rights reserved.