当我从网上看到发布日期时,我看不到
<U+200E>
在日期之前,但是在我抓取网页之后,我以某种方式在日期之前看到“<U+200E>”。所以我将它保存为 csv 文件某处并读入。
library(XML)
gethelp.url = 'http://forums.autodesk.com/t5/Get-Help-with-Fusion-360/bd-p/123'
gethelp.df =htmlTreeParse(gethelp.url, useInternalNodes = T)
getdate <- xpathSApply(gethelp.df, "//span[@class='local-date']", xmlValue)
postingdate <- as.data.frame(getdate)
write.csv(postingdate,"postingdate.csv")
postingdate <- read.csv("postingdate.csv")
head(postingdate)
X getdate
1 1 <U+200E>07-21-2013
2 2 <U+200E>01-23-2014
3 3 <U+200E>03-08-2014
4 4 <U+200E>01-23-2014
5 5 <U+200E>04-29-2014
6 6 <U+200E>04-29-2014
我想计算这些日期和今天之间的天数差异,所以我使用 gsub 删除了 <U+200E>。
postingdate$date3<- gsub(pattern="200",replacement="", postingdate$getdate)
postingdate$date3<- gsub(pattern="E>",replacement="", postingdate$date3)
postingdate$date3<- gsub(pattern="<U",replacement="", postingdate$date3)
postingdate$date3<- gsub(pattern="\\+",replacement="", postingdate$date3)
如果我只使用下面的 difftime,
postingdate$diff <- difftime(Sys.Date(),postingdate$date,units="days")
它抛出一条错误消息。
Error in as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format
In addition: Warning message:
In `$.data.frame`(postingdate, date) : Name partially matched in data frame
但是如果我使用 strptime,它可以在窗口上工作,但它在 Linux 上给出 NA
postingdate$date <- strptime(postingdate$date3,format="%m-%d-%Y")
postingdate$diff <- difftime(Sys.Date(),postingdate$date,units="days")
经过广泛的谷歌搜索,似乎两个平台上的 strptime 使用没有区别。有什么建议可以让我在 Linux 上运行这个 strptime?