如何为组中具有目标值的行设置子集,如果没有,则如何为同一组中的另一行设置子集?

草莓属

我试图对一个分组的数据框进行子集处理,以便最后为每个组添加一行。对于每个组,我想对具有特定值的行进行子集化,但是如果不存在这样的行,那么我将对另一行进行子集化。

数据按年份和季节分组,我想将Month == 2第1季度组的行,Month == 4第2季度的行,Month == 8第3季度的行和Month == 10第4季度的行作为子集。

如果没有要求的行,则季节组中最大的value行将是子集。例如,在第4行和第5行中,第4行将是子集。

Year Season Month value 
2012 1      1     3.4 
2012 1      2     6.1 
2012 1      3     9.0 
2012 2      5     4.4 
2012 2      6     1.2 
2012 3      8     4.9 
2012 4      10    2.7 
2013 1      3     8.3 
2013 1      3     2.4 
2013 2      4     7.0 
2013 3      7     12.1 
2013 3      8     5.7 
2013 4      10    6.3 
2013 4      11    3.3 

所需的输出是:

Year Season Month value 
2012 1      2     6.1 
2012 2      5     4.4 
2012 3      8     4.9 
2012 4      10    2.7 
2013 1      3     8.3 
2013 2      4     7.0 
2013 3      8     5.7 
2013 4      10    6.3 

我已经尝试了以下代码,但无法弄清楚如何在同一段代码中包含我的替代要求(我认为这需要使用ifand else if?)

df %>%
  group_by(Year, Season) %>%
  slice(which(Month == 2 | Month == 4 | Month == 8 | Month == 10))
  #slice(which.max(value)) #selects row with largest value in each group
PawełChabros

检查此解决方案:

data %>%
  mutate(cond = case_when(
    Season == 1 & Month == 2 ~ 1,
    Season == 2 & Month == 4 ~ 1,
    Season == 3 & Month == 8 ~ 1,
    Season == 4 & Month == 10 ~ 1,
    TRUE ~ 0
  )) %>%
  group_by(Year, Season) %>%
  arrange(desc(cond), desc(Value)) %>%
  slice(1) %>%
  ungroup()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

返回同一组中具有上一行值的行(Oracle Sql)

[SQL]:行的唯一子集,其中列值具有一组值中的每一个

Pyspark:如何为另一列中具有相同值的所有行设置相同的 id?

如何使用C中的动态编程查找总和等于目标值的所有子集

如何为熊猫数据框中的一组行分配组号?

如果给定的一组列中的所有值都为 0,如何删除一行

如何对两列具有目标值的行中的值求和?

如何为另一个表中的所有组重复表中的所有行?

如何为 Angular 中的一组按钮设置事件绑定?

如何为每个tr组的第一行设置样式?

如何打印一组的所有子集?

如何获取一组python的所有子集

如何为一组 UIControls 设置单个 VoiceOver

从上一行中减去具有DataFrame中上一组值的行

使用 DB2,如何为一列选择具有 MAX 的行,然后在结果子集上为同一表的另一列选择具有 MAX 的行?

当一组是另一组的子集时,如何在python中绘制两套Venn图?

如何为另一列中的每一行重复所有列值

如何为一组熊猫数据框正确遍历每一行

使用同一组中满足条件的下一个第一行设置列值

如果组中的一行在熊猫中满足特定条件,如何选择组的所有行

熊猫:如果值存在于同一行的另一列中,则将它们保留在一组列中,否则将其设置为NaN

如何为同一组中的每个值分配一个顺序编号?蟒蛇

查找组中的重复行,其中同一组中存在与某些条件匹配的另一行

检查一组类型是否是具有组合的子集

如何将某些numpy数组的目标值更改为另一个值(如果有目标值列表)?

打印一组的所有子集

如果在另一个数据帧中该组中有一行,如何删除该数据集中的组?

如何为熊猫multiindex中每个零级组的第一行分配值

从r中同一组的另一行获取值