我有一个这样的dataframe:
df <- data.frame(day = rep(1:7, 4),
week = rep(1:4, each=7),
price = round(runif(28), 2))
我想创建一个新列price_day_1
,它等于price
,其中day
的相应值在每周内最小。很久以前我有一个解决方案,我认为从group_by
开始,然后是mutate
,其中可能包含where
函数。我想一个解决方案,不涉及创建一个新的数据框,循环,绑定列或行或类似的东西,我很肯定有一个整洁的方式来做一个单一的mutate
(也许与前面的group_by
)。
我试着玩了一下mutate
和group_by
,并查看了where
的帮助部分。
2条答案
按热度按时间vohkndzv1#
您可以通过
day
的first
条目索引price
。f4t66c6m2#
在评论中更新了以下OP的解释,并通过包含
arange(day)
使其更加稳健。创建于2023-05-24使用reprex v2.0.2