【问题标题】:Subset HTML String in R to remove dateR中的子集HTML字符串以删除日期
【发布时间】:2013-03-15 20:50:36
【问题描述】:

我正在尝试从我从网上抓取的 .txt 文件中的字符行中提取日期;日期总是在同一行,后面跟着相同的 HTML,但是日期本身会随着每个文本而变化。下面演示了来自两个 .txt 文件的代码的两个示例。

"17"        <div align=\\center\\><br /><font face=\\Times New Roman\\ size=\\3\\><b>Tuesday, 3 February 2009</b></font>
"17"    "<div align=\"center\"><br /><font face=\"Times New Roman\" size=\"3\"><b>Tuesday, 10 February 2009</b></font>"

xpathSApply() 不起作用,因为我将它们作为 .txt 文件导入到 R 中,该文件作为字符读取;关于如何最好地提取它的任何想法?谢谢!

【问题讨论】:

    标签: string r date subset


    【解决方案1】:

    这有点傻,但如果标签 &lt;b&gt;&lt;/b&gt; 在您的数据中只出现一次,则可以。

    如果不是这样,您可以尝试更改以下下标:

    x <- "<div align=\\center\\><br /><font face=\\Times New Roman\\ size=\\3\\><b>Tuesday, 3 February 2009</b></font>"
    
    strsplit(strsplit(x, "<b>")[[1]][2], "</b>")[[1]][1]
    

    矢量化形式如下:

    sapply(strsplit(sapply(strsplit(x, "<b>"), function(y) y[2]), "</b>"), function(y) y[1])
    

    如果 x 是字符类型的向量。

    【讨论】:

    • 谢谢,这太棒了。我对代码有点不熟悉,但是有没有办法在不出错的情况下引入带引号的完整行?该行以 "\"17\"\t\"
    • 它对我有用x &lt;- "\"17\"\t\"&lt;div align=\"center\"&gt;&lt;br /&gt;&lt;font face=\"Times New Roman\" size=\"3\"&gt;&lt;b&gt;Tuesday, 10 February 2009&lt;/b&gt;&lt;/font&gt;" &gt; strsplit(strsplit(x, "&lt;b&gt;")[[1]][2], "&lt;/b&gt;")[[1]][1][1] "Tuesday, 10 February 2009"
    • 它也可以——而且应该足够了;我希望使代码更具体一点,以便当它查看具有开头和结尾行的长文本文档“”和“”时,它仍然能够识别通过从 "\"17\"\t\"
      开始的更具体布局的日期
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签