首页 > 解决方案 > 从两列计算平均值,然后计算日平均值到年平均值

问题描述

我有每天的最低温度、最高温度、最低露点和最高露点。该数据包含 NaN,我想计算 MaxdewPoint 和 Mean 露点之间的平均值,但如果有 NaN,我不想取平均值。就我而言,我想要 1948 年到 2009 年的每日平均露点温度之间的平均露点温度。我有 1948 年到 2018 年的数据。然后我想要从每日平均值到年平均值。

我的数据是

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

我的代码

#Calculate Mean temperature and dew point
MeanTMP <- dframe %>% 
    mutate(MeanTMP=rowMeans(cbind(dframe$Max.Temp,dframe$Min.Temp),na.rm=TRUE))

#In my data, Minimum Dew point had more than 12 percent of missing data that is from 
# 2010 to 2018) so i want to exclude these years in mean but i dont know
# how do i do this?
MeanDTMP <- dframe %>% 
    mutate(MeanDTMP=rowMeans(cbind(dframe$Max.Dew.Point, dframe$Min.Dew.Point), 
           na.rm=TRUE)) 

标签: r

解决方案


推荐阅读