【发布时间】:2022-01-05 09:31:18
【问题描述】:
我有一个包含数千行的数据框,我需要输出属于同一组和类的数据部分的最小值和最大值。我需要的是读取第一个起始值,将其与结束列中的前一个值进行比较,如果较小,则跳转到下一行,依此类推,直到起始值大于前一个结束值,然后输出最小起始值该部分的值和最大值。我的数据已经按 group-class-start-end 排序。
df <- data.frame(group = c("1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"),
class = c("2", "2", "2", "2", "2", "2", "2", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3"),
start = c("23477018","23535465","23567386","24708741","24708741","24708741","48339885","87274","87274","127819","1832772","1832772","1832772","6733569","7005524","7005524","7644572","8095433","8095433","8095433"),
end = c("47341413", "47341413", "47909872","42247834","47776347","47909872","53818713","3161655","3479466","3503792","3503792","4916249","5329014","8089225","12037894","13934484","12037894","12037894","13626119","13934484"))
我想要实现的输出是:
group class start end
1 1 2 23477018 47909872
2 1 2 48339885 53818713
3 1 3 87274 5329014
4 1 3 6733569 13934484
非常感谢任何关于如何实现这一目标的想法。
【问题讨论】:
标签: r loops max minimum multiple-conditions