17

R の URL からドメイン名を抽出できる関数を探しています。R の tldextract に似た関数はありますか? 編集:現在、私は以下のアプローチを使用しています:

domain=substr(as.character("www.google.com"), 
   which(strsplit("www.google.com",'')[[1]]=='.')[1]+1, nchar("www.google.com"))

しかし、コーディングの労力を節約できる定義済みの関数を探しています。

4

5 に答える 5

33

比較的新しい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

に支えられているので、非常に高速です (組み込みの R関数Rcppを使用するよりもはるかに高速です。apply

于 2016-01-10T14:20:44.307 に答える
7

これを行うパッケージ内の関数を知りません。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"
于 2013-09-26T06:41:53.033 に答える