【问题标题】:How to classify a variable based on the value in the row above it in R?如何根据R中上面一行中的值对变量进行分类?
【发布时间】:2022-01-12 04:10:49
【问题描述】:

我有一个包含四列的数据框。我想创建一个新列,其中值取决于上面的另一列行。例如,我有一个这样的数据集:

Day Precipitation Condition
1 3 Wet
2 0 Dry
3 3 Wet

我希望最终产品看起来像这样?

Day Precipitation Condition Day Before
1 3 Wet
2 0 Dry Wet
3 3 Wet Dry

关于如何做到这一点的任何想法?

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    你可以试试

    library(dplyr)
    
    df %>% 
      mutate('Day Before' = lag(Condition))
        
      Day Precipitation Condition Day Before
    1   1             3       Wet       <NA>
    2   2             2       Dry        Wet
    3   3             3       Wet        Dry
    

    【讨论】:

      【解决方案2】:

      普通 R 方法:

      要定义 Day Before 列,请将 NA 添加到 Condition 列 (df$Condition) 的开头,并删除该向量中的最后一个元素 (df$condition[-length(df$condition))。

      df$DayBefore <- c(NA,df$Condition[-length(df$Condition)])
      
      df
          Day Percepitation Condition DayBefore
      1   1             3       wet      <NA>
      2   2             0       dry       wet
      3   3             3       wet       dry
      

      【讨论】:

        猜你喜欢
        • 2023-02-03
        • 1970-01-01
        • 1970-01-01
        • 2020-02-09
        • 2016-01-23
        • 1970-01-01
        • 2016-03-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多