6

RのURLのリストからディレクトリをクリーンアップして削除しようとしています

私が持っているもの:

http://domain.com/123
http://www.sub.domain1.com/222
http://www.domain2.com/1233/abc

私が欲しいもの:

domain.com
sub.domain1.com
domain2.com

URLの先頭をクリーンアップする方法は少し長いです

url <- c("http://domain.com/123", "http://www.sub.domain1.com/222","http://www.domain2.com/1233/abc"

cleanurl <- gsub("http://","",url)
cleanurl2 <- gsub("www.","",cleanurl)

(http://とwwwをクリーンアップする簡単な方法があるかどうか教えてください。)

現在、正規表現に問題があり/、最後にすべてを削除しています。私はこれを試しました

cleanurl3 <- gsub("/*","",cleanurl2)

しかし、それは単に削除するだけであり、/その後のすべてではありません。

よろしくお願いします!

4

3 に答える 3

6

strsplit私は/gsubコンボでアプローチしています(b / cだけでなく、非常に直感的であるgsubため、すぐに理解できる場合もあります):strsplit

x <- readLines(n=3)
http://domain.com/123
http://www.sub.domain1.com/222
http://www.domain2.com/1233/abc

gsub("www.", "", sapply(strsplit(x, "//|/"), "[", 2))

## > gsub("www.", "", sapply(strsplit(x, "//|/"), "[", 2))
## [1] "domain.com"      "sub.domain1.com" "domain2.com"

編集または(マシューの提案に従って)
単に使用したい場合:strsplit

sapply(strsplit(x, "(//|/)(www[.])?"), "[", 2)
于 2013-03-24T19:52:35.480 に答える
5

最初に:

cleanurl <- sub("^http://(?:www[.])?(.*)$", "\\1", url)
cleanurl
## [1] "domain.com/123"       "sub.domain1.com/222"  "domain2.com/1233/abc"

ドメインのみ:

cleanurl <- sub("^http://(?:www[.])?([^/]*).*$", "\\1", url)
cleanurl
## [1] "domain.com"      "sub.domain1.com" "domain2.com" 
于 2013-03-24T19:51:45.510 に答える
2

これは機能するはずです:

cleanurl <- gsub("http://","",url)
cleanurl2 <- gsub("www.","",cleanurl)

sapply(strsplit(cleanurl2,"/"),"[",1)
[1] "domain.com"      "sub.domain1.com"
[3] "domain2.com" 
于 2013-03-24T19:50:22.950 に答える