【发布时间】:2020-11-17 05:39:40
【问题描述】:
我已经转置并填充了一个数据框,现在看起来像这样:
现在我正在尝试通过同时按 ID 和日期对它们进行分组来向上覆盖 Signal1 和 Signal 2 列中的所有值。前面的所有行都应该由给定组的最后一个值填充。输出应如下所示:
我尝试使用 dplyr 解决问题,但不知道如何处理:
df %>% group_by(ID, Date) %>% mutate (...)
必须对更多列(信号 1 - 信号 30)执行此操作,因此希望有一个通用的解决方案。
【问题讨论】:
-
请提供您的示例数据,并在您的数据上使用
dput并将生成的文本/代码复制到您的问题中,不要使用图像来显示数据 -
也许这行得通?
df_new <- df %>% group_by(ID, Date) %>% arrange(Date) %>% mutate(across(starts_with("Signal"), last())) -
@starja
last()有什么意义你能解释一下吗? -
@linkonabe 我在那里犯了一个错误,它应该只是
last。last返回每列的最后一个值(考虑分组变量),因为@Pavel Kaloferov 想用最后一个值替换组/信号列中的所有值