在R语言中基于坐标列将数据行分组到指定窗口
基于坐标列的窗口分组解决方案
核心思路
窗口规则是每10个坐标单位为一组(1-10→窗口1,11-20→窗口2,以此类推),可以通过整数除法运算直接计算每行对应的窗口编号,通用公式为:(coordinate - 1) // 窗口大小 + 1
这里窗口大小为10,代入后即可得到目标分组结果。
Python(Pandas)实现
import pandas as pd # 构造示例数据 data = { 'coordinate': [2, 5, 13, 16, 18, 25], 'value': [123, 234, 345, 456, 567, 678] } df = pd.DataFrame(data) # 添加窗口列 df['window'] = (df['coordinate'] - 1) // 10 + 1 # 输出结果 print(df)
运行后输出:
coordinate value window 0 2 123 1 1 5 234 1 2 13 345 2 3 16 456 2 4 18 567 2 5 25 678 3
R语言实现
# 构造示例数据 df <- data.frame( coordinate = c(2, 5, 13, 16, 18, 25), value = c(123, 234, 345, 456, 567, 678) ) # 添加窗口列 df$window <- (df$coordinate - 1) %/% 10 + 1 # 输出结果 print(df)
运行后输出:
coordinate value window 1 2 123 1 2 5 234 1 3 13 345 2 4 16 456 2 5 18 567 2 6 25 678 3
灵活调整
如果需要修改窗口大小(比如改为20),只需将公式中的10替换为目标大小即可;若窗口起始范围变化(比如从0开始分组),调整公式的偏移量即可适配。
内容的提问来源于stack exchange,提问作者Robert Baird
相关产品推荐
相关产品推荐

