gpt4 book ai didi

r - 压缩/汇总R中的字符串开始和长度数据

转载 作者:行者123 更新时间:2023-12-04 11:25:43 26 4
gpt4 key购买 nike

我有一个较大字符串中的(子)字符串位置的 data.frame。数据包含(子)字符串的开头及其长度。可以很容易地计算出(子)字符串的结束位置。

data1 <- data.frame(start = c(1,3,4,9,10,13),
length = c(2,1,3,1,2,1)
)

data1$end <- (data1$start + data1$length - 1)

data1
#> start length end
#> 1 1 2 2
#> 2 3 1 3
#> 3 4 3 6
#> 4 9 1 9
#> 5 10 2 11
#> 6 13 1 13

reprex package 创建于 2019-12-10 (v0.3.0)

我想通过总结连续的(子)字符串(相互连接的字符串)来“压缩”这个data.frame,这样我的新数据看起来像这样:

data2 <- data.frame(start = c(1,9,13),
length = c(6,3,1)
)

data2$end <- (data2$start + data2$length - 1)

data2
#> start length end
#> 1 1 6 6
#> 2 9 3 11
#> 3 13 1 13

reprex package 创建于 2019-12-10 (v0.3.0)

是否有更好的基础 R 解决方案可以让我从 data1data2

最佳答案

f = cumsum(with(data1, c(0, start[-1] - head(end, -1))) != 1)
do.call(rbind, lapply(split(data1, f), function(x){
with(x, data.frame(start = start[1],
length = tail(end, 1) - start[1] + 1,
end = tail(end, 1)))}))
# start length end
#1 1 6 6
#2 9 3 11
#3 13 1 13

关于r - 压缩/汇总R中的字符串开始和长度数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59276442/

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