我正在寻找一个可以从R中的URL中提取域名的函数.任何类似于R中的tldextract的函数?编辑:目前我正在使用以下方法:
domain=substr(as.character("www.google.com"),
which(strsplit("www.google.com",'')[[1]]=='.')[1]+1, nchar("www.google.com"))
Run Code Online (Sandbox Code Playgroud)
但我正在寻找一种可以节省编码工作量的预定义功能.
hrb*_*str 23
您还可以使用相对较新的urltools包:
library(urltools)
URLs <- c("http://stackoverflow.com/questions/19020749/function-to-extract-domain-name-from-url-in-r",
"http://www.talkstats.com/", "www.google.com")
suffix_extract(domain(URLs))
## host subdomain domain suffix
## 1 stackoverflow.com <NA> stackoverflow com
## 2 www.talkstats.com www talkstats com
## 3 www.google.com www google com
Run Code Online (Sandbox Code Playgroud)
它的支持Rcpp因此它的速度很快(比使用内置的R apply函数要多得多).
我不知道包中的函数可以做到这一点。我认为 R 的基本安装中没有任何内容。使用用户定义的函数并将其存储在source稍后的某个位置或使用它制作您自己的包。
x1 <- "http://stackoverflow.com/questions/19020749/function-to-extract-domain-name-from-url-in-r"
x2 <- "http://www.talkstats.com/"
x3 <- "www.google.com"
domain <- function(x) strsplit(gsub("http://|https://|www\\.", "", x), "/")[[c(1, 1)]]
domain(x3)
sapply(list(x1, x2, x3), domain)
## [1] "stackoverflow.com" "talkstats.com" "google.com"
Run Code Online (Sandbox Code Playgroud)