从Webscraper更改R中的日期,但无法转换

时间:2019-03-28 00:38:34

标签: r

我正在尝试解决一个问题,该问题来自需要组合为一个数据集的两个数据集。为了达到这一点,我需要按年份-月份信息重新整理两个数据集。不幸的是,第一个数据集需要按年份-月份信息进行计数,而且我似乎无法弄清楚如何更改日期,因此我可以使用月份-年份信息,而不是月份-日-年份信息。 这是有关雪崩的数据,我需要编写代码,将雪季中每个飞蛾的雪崩总数完全定义为12月至3月。我该怎么办?

我一直在尝试将日期格式转换为月-年,但是在我用

进行了更改之后
as.Date(avalancheslc$Date, format="%y-%m")

日期的所有值都将变为NA。...帮助!

# write the webscraper
library(XML)
library(RCurl)
avalanche<-data.frame()
avalanche.url<-"https://utahavalanchecenter.org/observations?page="
all.pages<-0:202
for(page in all.pages){
  this.url<-paste(avalanche.url, page, sep=" ")
  this.webpage<-htmlParse(getURL(this.url))
  thispage.avalanche<-readHTMLTable(this.webpage, which=1, header=T)
  avalanche<-rbind(avalanche,thispage.avalanche)
}

# subset the data to the Salt Lake Region
avalancheslc<-subset(avalanche, Region=="Salt Lake")
str(avalancheslc)
avalancheslc$monthyear<-format(as.Date(avalancheslc$Date),"%Y-%m")

# How can I tally the number of avalanches?

我的数据集的最终输出应类似于:

date    avalanches
2000-1    18
2000-2     4
2000-3     10
2000-12    12
2001-1    52

1 个答案:

答案 0 :(得分:0)

这应该可以工作(我只在1页上尝试过,而不是全部203页)。请注意,在stringsAsFactors = F函数中使用了选项readHTMLTable,并需要添加名称,因为1列不会自动获得一个。

library(XML)
library(RCurl)
library(dplyr)
avalanche <- data.frame()
avalanche.url <- "https://utahavalanchecenter.org/observations?page="
all.pages <- 0:202
for(page in all.pages){
  this.url <- paste(avalanche.url, page, sep=" ")
  this.webpage <- htmlParse(getURL(this.url))
  thispage.avalanche <- readHTMLTable(this.webpage, which = 1, header = T,
                                      stringsAsFactors = F)
  names(thispage.avalanche) <- c('Date','Region','Location','Observer')
  avalanche <- rbind(avalanche,thispage.avalanche)
}

avalancheslc <- subset(avalanche, Region == "Salt Lake")
str(avalancheslc)
avalancheslc <- mutate(avalancheslc, Date = as.Date(Date, format = "%m/%d/%Y"),
                 monthyear = paste(year(Date), month(Date), sep = "-"))