У меня есть дневная минимальная температура, максимальная температура, минимальная точка росы и максимальная точка росы. Эти данные содержат NaN, поэтому я хочу выполнить различные операции;
- рассчитать процент NaN встолбец за годом вместе с общим процентом за период (1948-2018 гг.)
- Если процентное значение NaN в году превышает более 10%, исключите все данные этого конкретного года, если их меньше, чем для расчета.
- Рассчитать среднегодовую температуру с учетом максимальной и минимальной температуры, если она следует правилу 2. 4. Рассчитать среднегодовую точку росы с учетом максимальной и минимальной температуры точки росы
- рассчитать годовую минимальную температуру, максимальную температуру,минимальная точка росы и максимальная точка росы, если она следует правилу 2
- из результатов 3, 4 и 5. Я хочу сделать графики трендов год Vs Variable.
- Я хочузапускать 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-тест. Включить все результаты в график трендов.