gpt4 book ai didi

R 对连续重复的奇数列表求和并删除除第一个列表之外的所有列表

转载 作者:行者123 更新时间:2023-12-03 03:40:39 24 4
gpt4 key购买 nike

我被问题困住了。如何加入连续重复的奇数列表并删除除第一个列表之外的所有列表。我已经了解如何对连续的重复行求和并删除除第一行之外的所有行(链接: R sum consecutive duplicate odd rows and remove all but first )。但是这个项目,我想加入连续重复的奇数列表,但不是所有连续的重复列表。

data.table 或 dplyr 就可以了

例如:

ia<-c(1,1,2,2,1,1,1,1)
time <- list(c(23,43),
c(24,54,32),
c(23,43,232),
c(24,54,32),
c(23,43,2),
c(24,54,32),
c(24,54,32),
c(24,54,32)
)

res_time <- list(c(23,43,24,54,32), # 1+1
c(23,43,232), # 2
c(24,54,32), # 2
c(23,43,2,24,54,32,24,54,32,24,54,32) # 1+1+1+1
)

谢谢!

最佳答案

这个“几乎”仅使用基本 R 即可给出预期输出。我们使用 diff 创建分组序列。为了交替选择组,我们递归地创建一系列备用 TRUE/FALSE 值,并根据该值取消列出并将列表值组合在映射

pat <- cumsum(c(0, diff(ia)) != 0)

mapply(function(x, y) if(y) unlist(time[x]) else time[x],
split(seq_along(time), pat), rep(c(TRUE, FALSE), length.out = length(unique(pat))))


#$`0`
#[1] 23 43 24 54 32

#$`1`
#$`1`[[1]]
#[1] 23 43 232

#$`1`[[2]]
#[1] 24 54 32


#$`2`
# [1] 23 43 2 24 54 32 24 54 32 24 54 32

关于R 对连续重复的奇数列表求和并删除除第一个列表之外的所有列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55571484/

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