【问题标题】:R: add a column for the day of valueR:为值日添加一列
【发布时间】:2017-11-21 05:11:29
【问题描述】:

我有以下代码来选择最高温度和最低温度都有高温(高于两者的第 90 个百分位)的天数(24 小时)。该代码计算单个事件的长度和每个事件期间记录的最高平均温度。

setDT(df)
df[, hotday := +(df$MAX>=(quantile(df$MAX,.90, na.rm = T, type = 6)) & df$MIN>=(quantile(df$MIN,.90, na.rm = T, type = 6)))
          ] [, hw.length := with(rle(hotday), rep(lengths,lengths))
             ] [hotday==0, hw.length:=0][!!hotday, Highest_Mean := max(MEAN) , rleid(hw.length)][]

代码结果如下:

> head(df)
   YEAR MONTH DAY      Date MEAN  MAX  MIN    D    hotday hw.length Highest_Mean
1: 1991     5  14 5/14/1991 32.2 41.0 23.6 17.4       1         3         34.9
2: 1991     5  15 5/15/1991 34.9 43.3 26.0 17.3       1         3         34.9
3: 1991     5  16 5/16/1991 31.4 39.2 23.6 15.6       1         3         34.9
4: 1994     5  27 5/27/1994 30.7 41.0 23.0 18.0       1         2         30.7
5: 1994     5  28 5/28/1994 30.6 39.4 23.4 16.0       1         2         30.7

第一个事件持续了 3 天,最高平均值为 34.9,但代码没有说明是在哪一天记录的(是在事件的第一天、第二天还是第三天)。 如何添加一列以提供该信息以及最大长度(非重复值,每个事件一个)?像这样的

   YEAR MONTH DAY      Date MEAN  MAX  MIN    D    hotday hw.length Highest_Mean  mean.day.max.length
1: 1991     5  14 5/14/1991 32.2 41.0 23.6 17.4       1         3         34.9 
2: 1991     5  15 5/15/1991 34.9 43.3 26.0 17.3       1         3         34.9     2-3
3: 1991     5  16 5/16/1991 31.4 39.2 23.6 15.6       1         3         34.9

【问题讨论】:

    标签: r


    【解决方案1】:

    您最好为每个热浪事件添加一个唯一的识别代码,然后对其进行索引,但此解决方案将有效(只要两个事件的长度和最高平均温度不完全相同)

    hottest_day = which(df$MEAN == df$Highest_Mean)
    df$mean.day.max.length=""
    
    for(i in hottest_day){
      subset=df[(which(df$hw.length==df$hw.length[i] & df$Highest_Mean==df$Highest_Mean[i])),]
      df$mean.day.max.length[i]=paste0(which(subset$MEAN==df$Highest_Mean[i]),"-",df$hw.length[i])
    }
    

    【讨论】:

    • 我很高兴@Ali。如果有效,请勾选接受答案:)
    猜你喜欢
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    • 2018-02-10
    • 1970-01-01
    • 2015-03-20
    相关资源
    最近更新 更多