首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中每5分钟至每小时汇总的降水量值

R中每5分钟至每小时汇总的降水量值
EN

Stack Overflow用户
提问于 2014-10-02 07:38:51
回答 1查看 261关注 0票数 0

我试图从我使用weatherData软件包的个人气象站获得每小时的总降水值。我遇到的问题是,每五分钟收集一次数据,数据会重复,直到降水量值发生变化。我尝试过“重复”函数,但在没有降水的情况下,我得到了大量的数据,这使我很难得到每小时降水量的摘要。

请参阅下面的代码

代码语言:javascript
复制
## Load required libraries

library(weatherData)
library(ggplot2)
library(scales)
library(plyr)
library(reshape2)
library(gridExtra)
library(lubridate)
library(weathermetrics)
library(zoo)

# Get data for PWS using weatherData package

pws <- getWeatherForDate("IPENANGB2", "2014-09-01","2014-09-30", station_type = "id",opt_detailed=T, opt_custom_columns=T, custom_columns=c(1,2,6,7,10))

# Rename columns
colnames(pws)<-c("time","time1","tempc","wdd","wspd","prcp")


## Adding date columns

pws$time<-as.POSIXct(pws$time1,format="%Y-%m-%d %H:%M:%S",tz="Australia/Perth")
pws$year <- as.numeric(format(pws$time,"%Y"))
pws$date <-as.Date(pws$time,format="%Y-%m-%d",tz="Australia/Perth")
pws$year <- as.numeric(as.POSIXlt(pws$date)$year+1900)
pws$month <- as.numeric(as.POSIXlt(pws$date)$mon+1)
pws$monthf <- factor(pws$month,levels=as.character(1:12),labels=c("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"),ordered=TRUE)
pws$weekday <- as.POSIXlt(pws$date)$wday
pws$weekdayf <- factor(pws$weekday,levels=rev(0:6),labels=rev(c("Mon","Tue","Wed","Thu","Fri","Sat","Sun")),ordered=TRUE)
pws$yearmonth <- as.yearmon(pws$date)
pws$yearmonthf <- factor(pws$yearmonth)
pws$week <- as.numeric(format(as.Date(pws$date),"%W"))
pws$weekf<- factor(pws$week)
pws$jday<-yday(pws$date)
pws$hour <- as.numeric(format(strptime(pws$time, format = "%Y-%m-%d %H:%M"),format = "%H"))
pws$min <- as.numeric(format(strptime(pws$time, format = "%Y-%m-%d %H:%M"),format = "%M"))

# Remove duplicate values

pws.df <- pws[!duplicated(pws$prcp),]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-02 08:08:30

假设您希望获得tempc、wdd、wspd、prcp的小时平均值:

代码语言:javascript
复制
# used packages
library(weatherData)
library(lubridate)
library(dplyr)
library(stringr)

# read data
pws <- getWeatherForDate("IPENANGB2",
                         "2014-09-01",
                         "2014-09-30", 
                         station_type = "id",
                         opt_detailed = T, 
                         opt_custom_columns = T, 
                         custom_columns = c(1, 2, 6, 7, 10))
# rename columns
colnames(pws) <- c("time", "time1", "tempc", "wdd", "wspd", "prcp")

# cleaning dataset and adding some columns
useful_pws <-
    pws %>%
    select(2:6) %>%
    filter(!str_detect(time1, "<br>")) %>%
    mutate(time1 = ymd_hms(time1),
           year = year(time1),
           month = month(time1),
           day = day(time1),
           hour = hour(time1)) %>%
    tbl_df()

# summarising dataset
useful_pws %>%
    select(-time1) %>%
    group_by(year, month, day, hour) %>%
    summarise(tempc = mean(tempc, na.rm = TRUE),
              wdd = mean(wdd, na.rm = TRUE),
              wspd = mean(wspd, na.rm = TRUE),
              prcp = mean(prcp, na.rm = TRUE))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26156272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档