gpt4 book ai didi

r - 根据公共(public)值组合 R 中的数据框行

转载 作者:行者123 更新时间:2023-12-04 09:22:18 25 4
gpt4 key购买 nike

给定一个数据框:

    > df <- data.frame( L=c('a','b','b'), t0=c(1,10,20), t1=c(9,19,39))
> df
L t0 t1
1 a 1 9
2 b 10 19
3 b 20 39

I want:
> df
L t0 t1
1 a 1 9
2 b 10 39

df$L 的相同值等于 "b"表示 'b' 的第一个实例的开始 (t0) 应该是新的 't0' 值和 ( contiguous) 'b' 应该是新的 't1' 值。实际上,如果 t0 和 t1 是时间,那么我想合并具有相同 'L' 值的相邻行的持续时间。

最佳答案

按 'L' 分组后,summarise 取 't0' 的 first 值和 't1' 的 last 值(或minmax)

df %>%
group_by(L) %>%
summarise(t0 = first(t0), t1 = last(t1))
# A tibble: 2 x 3
# L t0 t1
# <fct> <dbl> <dbl>
#1 a 1 9
#2 b 10 39

根据 OP 的评论,如果我们还按 'L' 中相邻的相似元素进行分组,请使用 rleid

library(data.table)
df1 %>%
group_by(grp = rleid(L), L) %>%
summarise(t0 = first(t0), t1 = last(t1))

数据

df1 <- data.frame( L=c('a','b','b','a','b','b'), 
t0=c(1,10,20,40,60,70), t1=c(9,19,39,49,69,79))

关于r - 根据公共(public)值组合 R 中的数据框行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59169501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com