每个域只保留一行

时间:2015-11-04 12:30:14

标签: r

我有一个网址列表,如下所示: my_full_urls_list

['class' => 'yii\rest\UrlRule', 'controller' => 'v1/lkup-access-profile','extraPatterns' => ['POST create' => 'create']],

对于上一个示例,我知道域名:

sudo apt-get install libgmp-dev

基于此,我希望每个域只保留一个值。输出示例:

 [1] "http://www.mypage1.com"                              
     [2] "http://www.mypage1.com/produce"                              
     [3] "http://www.mypage1.com/contact"                              
     [4] "http://www.mypage2.com"                             
     [5] "http://www.mypage2.com/other"                              
     [6] "http://www.mypage2.com/rye"                             
     [7] "http://www.mypage3.com/contact"                              
     [8] "http://www.mypage3.com/buy"                              
     [9] "http://www.mypage5.com/info"

我拥有的是我想要的域名列表,并与my_full_urls_list进行比较我希望每个域名只保留一个域名。

 http://www.mypage1.com    
    http://www.mypage2.com
    http://www.mypage3.com
    http://www.mypage5.com

以及以前的dput格式的主网址列表:

 "http://www.mypage1.com/produce"
    "http://www.mypage2.com/other"
    "http://www.mypage3.com/contact"
    "http://www.mypage5.com/info"   

1 个答案:

答案 0 :(得分:2)

我们使用正则表达式外观将匹配.com的一个或多个字符与字符串末尾匹配,并将其替换为''。然后,我们match使用“域名”,将其用作分组变量,以便从“网址”获取1个sample观察值。

url1 <- sub("(?<=\\.com).*$", '', urls, perl=TRUE)
tapply(urls, match(url1, domains), FUN= sample, 1)

更新

如果有.com.net等,我们可以匹配字符串末尾的\后跟单词(\\w+)并替换为{ {1}}。其余的和以前一样。

''