楼主: nkwinter
5493 2

[问答] 求对区间内的数据求平均值 [推广有奖]

  • 0关注
  • 0粉丝

大专生

76%

还不是VIP/贵宾

-

威望
0
论坛币
8 个
通用积分
0.0002
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
551 点
帖子
31
精华
0
在线时间
58 小时
注册时间
2016-3-22
最后登录
2022-3-6

楼主
nkwinter 发表于 2016-11-13 14:37:28 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
文件1示例数据,共有三列
1        10        0                          
1        65        0.2                     
1        79        1                  
1        164        0.3                        
2        34        0                  
2        58        0.34                     
2        103        1                  
......
                             
文件2为所要求平均值的滑窗文件
1    0    100   
1   50   150
1   100   200
2   0     100
2   50    150
.......

想得到的结果,先输出文件2,然后第四列输出文件1中第三列数值在文件2区间内的平均值,如下                                                          
1    0    100    0.4 (文件1第一列为1,第二列在区间0到100,第三列的平均值)
1   50   150    0.6(文件1第一列为1,第二列在区间50到150,第三列的平均值)
1   100   200  0.3
2   0     100    0.17(文件1第一列为2,第二列在区间0到100,第三列的平均值)
2   50    150   0.67


实际数据量很大,求用R语言实现
这个苦苦思索了好长时间,无解,恳求高人帮助



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:平均值 求平均 实际数据 R语言 平均值

回帖推荐

ntsean 发表于2楼  查看完整内容

沙发
ntsean 发表于 2016-11-14 12:00:01
  1. library(dplyr)

  2. data1 <- read.table(text = "1        10        0                          
  3.                     1        65        0.2                     
  4.                     1        79        1                  
  5.                     1        164        0.3                        
  6.                     2        34        0                  
  7.                     2        58        0.34                     
  8.                     2        103        1 ")

  9. names(data1) <- c("id", "x", "y")

  10. data2 <- read.table(text = "1    0    100   
  11.                     1   50   150
  12.                     1   100   200
  13.                     2   0     100
  14.                     2   50    150")

  15. names(data2) <- c("id", "left", "right")

  16. data2 %>%
  17.   inner_join(data1, by = "id") %>%
  18.   filter(x >= left, x <= right) %>%
  19.   group_by(id, left, right) %>%
  20.   summarise(y = mean(y))
复制代码

藤椅
nkwinter 发表于 2016-11-18 13:30:59
非常感谢您的帮助

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 18:30