首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引用不同颜色作为两个数据帧之间的范围

引用不同颜色作为两个数据帧之间的范围
EN

Stack Overflow用户
提问于 2017-04-25 18:21:19
回答 1查看 45关注 0票数 0

我有一个数据帧/列表,它给出了ID和一个数字

代码语言:javascript
复制
1.  25
2.  36
3.  10
4.  18
5.  12

第一个列表实际上是一个对象列表,其中包含了每个示例中包含的对象数量。砖块在一堵墙里,所以一张或一张墙上写着每块砖的数量。第二个包含上面列表中所引用的对象的完整列表,以及每个对象的第二个属性。

代码语言:javascript
复制
1.   3
2.   4
3.   2
4.   8
5.   5

等等,在弱例子中,我把它们串在一起,这是所有墙壁上每块砖的重量清单。

所以我的第一个列表给出了我想在第二个列表中平均的范围,或者作为最终结果,我想要一个墙的列表,每个墙的平均重量。

ie平均属性1-25,26-62 . 89-101

到目前为止,我的想法是创建一个带有两个颜色的数据框架。

代码语言:javascript
复制
1. 1 25
2. 26 62
3. n
4. n
5. 89 101

然后尝试创建第三列,该列在mean(table2$coloumn1[x:y])类型公式中使用前两个作为x和y的列,但我无法工作。

最终的结果可能是这样的

代码语言:javascript
复制
1.   3.2
2.   6.5
3.   3
4.   7.9
5.   8.5

是否有办法这样做,或谁有一个更优雅的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-25 18:42:58

你可以这样做..。设置范围的低限值和高限值,然后使用mapply计算合适的df2行的平均值。

代码语言:javascript
复制
df1 <- data.frame(id=c(1,2,3,4,5),no=c(25,36,10,18,12))
df2 <- data.frame(obj=1:100,att=sample(1:10,100,replace=TRUE))

df1$low <- cumsum(c(1,df1$no[-nrow(df1)]))
df1$high <- pmin(cumsum(df1$no),nrow(df2))
df1$meanatt <- mapply(function(l,h) mean(df2$att[l:h]), df1$low, df1$high)

df1
  id no low high  meanatt
1  1 25   1   25 4.760000
2  2 36  26   61 5.527778
3  3 10  62   71 5.800000
4  4 18  72   89 5.111111
5  5 12  90  100 4.454545
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43618224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档