Очистка погодных данных и вычисление среднего - PullRequest
0 голосов
/ 28 января 2019

У меня есть дневная минимальная температура, максимальная температура, минимальная точка росы и максимальная точка росы. Эти данные содержат NaN, поэтому я хочу выполнить различные операции;

  1. рассчитать процент NaN встолбец за годом вместе с общим процентом за период (1948-2018 гг.)
  2. Если процентное значение NaN в году превышает более 10%, исключите все данные этого конкретного года, если их меньше, чем для расчета.
  3. Рассчитать среднегодовую температуру с учетом максимальной и минимальной температуры, если она следует правилу 2. 4. Рассчитать среднегодовую точку росы с учетом максимальной и минимальной температуры точки росы
  4. рассчитать годовую минимальную температуру, максимальную температуру,минимальная точка росы и максимальная точка росы, если она следует правилу 2
  5. из результатов 3, 4 и 5. Я хочу сделать графики трендов год Vs Variable.
  6. Я хочузапускать t-тесты для каждой переменной.

Мои данные выглядят так:

 Station Date    Month  Day Year    MaxTemp MinTemp MaxDewPoint MinDewPoint
    ORD 1/1/1948    1   1   1948    35.6    26.6    34.16         -27.4
    ORD 1/2/1948    1   2   1948    -2      -16     -16.96       -27.04
    ORD 1/3/1948    1   3   1948    -4      -26     -12            -26
    ORD 1/4/1948    1   4   1948    -5      -26     -15             -26
    ORD 1/5/1948    1   5   1948    8       -25     3               NaN
    ORD 1/6/1948    1   6   1948    -11     -25     -24            -25
    ORD 1/7/1948    1   7   1948    1       -23     NaN            -23
    ORD 1/8/1948    1   8   1948    1       -22     -9              NaN
    ORD 1/9/1948    1   9   1948    NaN     -22     -5             -22
    ORD 1/10/1948   1   10  1948    10      NaN     -2              -22
    ORD 1/11/1948   1   11  1948    -11     -21    -23              -21
    ORD 1/12/1948   1   12  1948    3       -12     -7.96        -20.92
    ORD 1/13/1948   1   13  1948    6.98    -7.6    -7.6         -20.2
    ORD 1/14/1948   1   14  1948    3.92    -9.4    -11.2        NaN
    ORD 1/15/1948   1   15  1948    6        -7    -5.98         NaN
    ORD 1/16/1948   1   16  1948    3       -11     -7.96       -20.02

Пока мне удается написать несколько строк кода, но я не уверен, является ли этот код правильным и наиболее эффективным.

install.packages("dplyr")
install.packages("stringr")
library(dplyr)
library(stringr)

#setting up workspace in the folder#
setwd("E:/Climate Data Analysis/Asignment 1")
#opening a CSV file in r program#
data<- read.csv("chiacagost.csv", header=TRUE, sep=",")
#making data frame of the variables#
dframe<- data.frame(data)
# Missing percentage of the data by column
MisMxTMP<-dframe%>%summarise(NAMisMxTMP=sum(is.na(Max.Temp)/length(Max.Temp)))*100
misMnTMP<-dframe%>%summarise(NAmisMnTMPL=sum(is.na(Min.Temp)/length(Min.Temp)))*100
MisMxDTMP<-dframe%>%summarise(NAMisMxDTMP=sum(is.na(Max.Dew.Point)/length(Max.Dew.Point)))*100
MisMnDTMP<-dframe%>%summarise(NAMisMnDTMP=sum(is.na(Min.Dew.Point)/length(Min.Dew.Point)))*100

#Calcualte Mean temperature and dew point

MeanTMP<-dframe%>% mutate(MeanTMP=rowMeans(cbind(dframe$Max.Temp,dframe$Min.Temp),na.rm=TRUE))
#Minimum Dew point had more than 12 percent of missing data but i could not locate which years so the code below doesnot exclude NA
MeanDTMP<-dframe%>% mutate(MeanDTMP=rowMeans(cbind(dframe$Max.Dew.Point,dframe$Min.Dew.Point),na.rm=TRUE)) 

Исходя из этих результатов, я намереваюсь получить годовые тренды всех 4 переменных по отдельности (theil-sen и OLS, и запустить t-тест. Включить все результаты в график трендов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...