【问题标题】:Extract part of string from URL in R从R中的URL中提取部分字符串
【发布时间】:2018-06-25 15:05:29
【问题描述】:

这是我拥有的示例行。我想要的只是提取网站名称,例如; 3dubs 或 adludio 怎么做?干杯,

URL
https://www.3dhubs.com/
https://adludio.com/
https://aircall.io/
https://www.andjaro.com/en/home/

结果

3dhubs
adludio
aircall
andjaro

输入这段代码后,

suffix_extract(domain(df$URL))

我得到的结果如下:当我尝试分配它时,它看起来不同。如何获取域并分配给列?

host            subdomain  domain   suffix
www.3dhubs.com  www        3dhubs   com
adludio.com     <NA>       adludio  com

【问题讨论】:

    标签: r string substring


    【解决方案1】:

    使用适当的 URL 解析器(如 urltools 包中的解析器)可能是最安全的。例如

    dd$domain <- urltools::url_parse(dd$URL)$domain
    

    经过测试

    dd<-read.table(text="URL
    https://www.3dhubs.com/
    https://adludio.com/
    https://aircall.io/
    https://www.andjaro.com/en/home/", header=T, stringsAsFactors=FALSE)
    

    【讨论】:

    • 事实上 suffix_extract(domain(df$URL)) 给了我我想要的域。但是我不能将结果分配给列。一旦我分配了它,它的显示就与控制台结果不同。
    • 你到底尝试了什么?
    • 编辑问题
    • 与其他答案的评论相同:使用gsub 删除子域并不像答案中建议的那么简单。使用suffix_extract 可能更安全。
    【解决方案2】:

    如何获取域并分配给列?

    使用 {urltools},以下对我有用:

    df$domain = suffix_extract(domain(df$URL))$domain
    

    【讨论】:

      【解决方案3】:

      库 urltools 应该可以工作。如果您的数据在对象 url 中,这就是它返回的内容。

      library(urltools)
      df1 <- suffix_extract(domain(urls))
      df1
                   host subdomain  domain suffix
      1  www.3dhubs.com       www  3dhubs    com
      2     adludio.com      <NA> adludio    com
      3      aircall.io      <NA> aircall     io
      4 www.andjaro.com       www andjaro    com
      
      df1$domain
      [1] "3dhubs"  "adludio" "aircall" "andjaro"
      

      一个 dplyr / tidyr 选项如下,但带有来自 urltools 的 url_parse 以确保它是一个有效的 url。

      library(dplyr)
      library(tidyr)
      
      df <- data_frame(urls)
      
      df %>% 
        mutate(url_parsed = urltools::url_parse(urls)$domain) %>% 
        separate(url_parsed, into = c("subdomain", "domain", "suffix"), fill = "left")
      
      # A tibble: 4 x 4
        urls                             subdomain domain  suffix
        <chr>                            <chr>     <chr>   <chr> 
      1 https://www.3dhubs.com/          www       3dhubs  com   
      2 https://adludio.com/             NA        adludio com   
      3 https://aircall.io/              NA        aircall io    
      4 https://www.andjaro.com/en/home/ www       andjaro com   
      

      数据:

      urls <- c("https://www.3dhubs.com/", "https://adludio.com/", "https://aircall.io/", 
                "https://www.andjaro.com/en/home/")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-18
        • 1970-01-01
        • 2015-09-19
        相关资源
        最近更新 更多