Изменение даты в R от веб-мастера, но не в состоянии конвертировать - PullRequest
1 голос
/ 28 марта 2019

Я пытаюсь решить проблему, которая извлекается из двух наборов данных, которые необходимо объединить в один набор данных. Чтобы добраться до этой точки, мне нужно привязать оба набора данных к информации года-месяца. К сожалению, первый набор данных должен быть подсчитан по информации о году и месяце, и я не могу понять, как изменить дату, чтобы получить информацию о месяце-году, а не информацию о месяце-году-году. Это данные о лавинах, и мне нужно написать код, в котором будет указано количество лавин на каждую моль в снежный сезон, определенное как декабрь-март. Как мне это сделать?

Я продолжаю пытаться преобразовать формат даты в месяц-год, но после того, как я изменяю его на

as.Date(avalancheslc$Date, format="%y-%m")

все значения для Date превращаются в NA .... help!

# 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 голосов
/ 28 марта 2019

Это должно работать (я пробовал только на 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 = "-"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...