首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何对数据帧(加权平均,R语言)中的行使用条件?

如何对数据帧(加权平均,R语言)中的行使用条件?
EN

Stack Overflow用户
提问于 2019-03-03 16:16:34
回答 3查看 456关注 0票数 1

我需要计算数据帧中每一行的加权平均值,其中:有人知道如何使用R语言吗?问候

代码语言:javascript
运行
AI代码解释
复制
t1 <- c(1, 2, 4, 6, 7, 9)
t2 <- c(6, 6, 5, 3, 3, 7)
df <- data.frame(t1 = t1, t2=t2, stringsAsFactors = FALSE)

if value <= 5 , weight is 1
if value > 5 and <= 8 , weight is 2
if value > 8 , weight is 3
EN

回答 3

Stack Overflow用户

发布于 2019-03-03 16:24:55

使用tidyverse计算每行的加权平均值的解决方案。

代码语言:javascript
运行
AI代码解释
复制
library(tidyverse)

df2 <- df %>%
  # Add row numbers
  rowid_to_column() %>%
  # Convert to long format
  gather(Group, Value, -rowid) %>%
  # Assign weight
  mutate(Weight = case_when(
    Value <= 5                   ~1,
    Value >  5 & Value <= 8      ~2,
    Value > 8                    ~3,
    TRUE                         ~NA_real_
  )) %>%
  # Calculated weighted average
  group_by(rowid) %>%
  summarize(Weighted_Mean = weighted.mean(Value, Weight)) %>%
  ungroup()
df2
#   rowid Weighted_Mean
#   <int>         <dbl>
# 1     1          4.33
# 2     2          4.67
# 3     3          4.5 
# 4     4          5   
# 5     5          5.67
# 6     6          8.2 
票数 2
EN

Stack Overflow用户

发布于 2019-03-03 16:27:26

一个基本的R解决方案,函数findInterval完成了主要部分。然后将结果与df相乘,得到行平均值。

代码语言:javascript
运行
AI代码解释
复制
t1 <- c(1, 2, 4, 6, 7, 9)
t2 <- c(6, 6, 5, 3, 3, 7)
df <- data.frame(t1 = t1, t2=t2, stringsAsFactors = FALSE)

cp <- c(-Inf, 5, 8, Inf)

编辑。

如果权重被归一化为1,那么正确的答案将是以下两个中的任何一个。

代码语言:javascript
运行
AI代码解释
复制
wt <- sapply(df, findInterval, cp)
rowSums(df*(wt/apply(wt, 1, sum)))
#[1] 4.333333 4.666667 4.666667 5.000000 5.666667 8.200000

sapply(1:nrow(df), function(i)
  weighted.mean(df[i,], sapply(df, findInterval, cp)[i,]))
#[1] 4.333333 4.666667 4.666667 5.000000 5.666667 8.200000

这些结果现在与其他答案中的结果相等。

票数 2
EN

Stack Overflow用户

发布于 2019-03-03 16:36:32

如果你想乘以权重,然后除以它们的和(等于R中的weighted.mean函数):

代码语言:javascript
运行
AI代码解释
复制
df %>%
  mutate_at(vars(t1, t2),
            list(weights = ~ case_when(. <= 5 ~ 1,
                                       . > 5 & . <= 8 ~ 2,
                                       TRUE ~ 3))) %>%
  mutate(rowMeanWeighted = rowSums(.[, 1:2] * .[, 3:4]) / rowSums(.[, 3:4])) %>%
  select(-contains("weights"))

输出:

代码语言:javascript
运行
AI代码解释
复制
  t1 t2 rowMeanWeighted
1  1  6        4.333333
2  2  6        4.666667
3  4  5        4.500000
4  6  3        5.000000
5  7  3        5.666667
6  9  7        8.200000
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54970901

复制
相关文章
R语言数据库中如何多条件排序
R语言中,如何对数据框的数据根据某个条件进行排序呢?如何根据多条件进行排序呢,类似Excel中的排序效果:
邓飞
2020/08/24
1.8K0
R语言数据库中如何多条件排序
指数加权平均
计算平均值最直观的方法,求和除以值的数目。比如求伦敦一个月的气温平均值,你把所有的温度加起来除以一个月的天数即可。下面我们介绍另一种求每一天平均气温的方法,即指数加权平均。
Steve Wang
2019/05/26
1.2K0
如何用DAX实现降噪加权移动平均
移动平均,大家都清楚了,但是降噪,加权后再移动平均,将移动平均的能力推向了更高境界。
BI佐罗
2021/11/23
9160
R语言倾向性评分:加权
之前已经介绍过倾向性评分匹配(propensity score matching)、倾向性评分回归和分层:
医学和生信笔记
2023/02/14
1.4K0
R语言倾向性评分:加权
如何使用R语言解决可恶的脏数据
在数据分析过程中最头疼的应该是如何应付脏数据,脏数据的存在将会对后期的建模、挖掘等工作造成严重的错误,所以必须谨慎的处理那些脏数据。 脏数据的存在形式主要有如下几种情况: 1)缺失值 2)异常值 3)数据的不一致性 下面就跟大家侃侃如何处理这些脏数据。 一、缺失值 缺失值,顾名思义就是一种数据的遗漏,根据CRM中常见的缺失值做一个汇总: 1)会员信息缺失,如身份证号、手机号、性别、年龄等 2)消费数据缺失,如消费次数、消费金额、客单价,卡余等 3)产品信息缺失,如批次、价格、折扣、所属类别等 根据实际的业务
CDA数据分析师
2018/02/08
1.4K0
如何使用R语言解决可恶的脏数据
如何使用R语言解决可恶的脏数据
在数据分析过程中最头疼的应该是如何应付脏数据,脏数据的存在将会对后期的建模、挖掘等工作造成严重的错误,所以必须谨慎的处理那些脏数据。 脏数据的存在形式主要有如下几种情况: 1)缺失值 2)异常值 3)数据的不一致性 下面就跟大家侃侃如何处理这些脏数据。 一、缺失值 缺失值,顾名思义就是一种数据的遗漏,根据CRM中常见的缺失值做一个汇总: 1)会员信息缺失,如身份证号、手机号、性别、年龄等 2)消费数据缺失,如消费次数、消费金额、客单价,卡余等 3)产品信息缺失,如批次、价格、折扣、所属类别等 根据实际的业务
小莹莹
2018/04/23
1.1K0
如何使用R语言解决可恶的脏数据
spgwr | R语言与地理加权回归(Ⅰ-1):线性地理加权回归[通俗易懂]
地理加权回归(Geographically Weighted Regression, GWR)经过多年发展,已经具备了多种形式,在R语言中也对应着多个工具包,其中spgwr是一个开发较早、比较经典的工具包,功能也相对基础。
全栈程序员站长
2022/11/10
9220
spgwr | R语言与地理加权回归(Ⅰ-1):线性地理加权回归[通俗易懂]
r语言求平均值_r语言计算中位数
R中的统计分析通过使用许多内置函数来执行的,这些函数大部分是R基础包的一部分,并且它们将R向量与参数一起作为输入,并在执行计算后给出结果。
全栈程序员站长
2022/09/29
2.2K0
r语言求平均值_r语言计算中位数
为什么在优化算法中使用指数加权平均
指数加权平均(exponentially weighted averges),也叫指数加权移动平均,是一种常用的序列数据处理方式。
杨熹
2018/08/10
1.9K0
为什么在优化算法中使用指数加权平均
股票和数据分析--加权平均数
前文聊了分位数在股票市场中的应用(见zhuanlan.zhihu.com/p/97),这两天上证指数突突的冲上了3000点,真是一根阳线改变情绪、两根阳线改变观念、三根阳线改变信仰,股民们又开始沸腾了。借着指数良好的上涨势头,和大家聊一下加权平均数和基金定投的关系。
数据森麟
2020/02/26
9230
什么是指数加权平均、偏差修正?
指数加权平均 在深度学习优化算法中,例如Momentum、RMSprop、Adam,都提到了一个概念,指数加权平均,看了Andrew Ng的深度学习课程后,总结一下什么是指数加权平均。  式中v_t可
10JQKA
2018/05/09
2.3K0
什么是指数加权平均、偏差修正?
加权平均值灰度化
算法:加权平均值灰度化方法将彩色图像中像素的R分量、G分量和B分量3个数值的加权平均值作为灰度图的灰度值。灰度图像能以较少的数据表征图像的大部分特征,因此在某些算法的预处理阶段需要进行彩色图像灰度化,以提高后续算法的效率。将彩色图像转换为灰度图像的过程称为彩色图像灰度化。在RGB模型中,位于空间位置(x,y)的像素点的颜色用该像素点的R分量R(x,y)、G分量G(x,y)和B分量B(x,y)3个数值表示。灰度图像每个像素用一个灰度值(又称强度值、亮度值)表示即可。 设f(x,y)表示位于空间位置(x,y)处的像素(该像素的R分量、G分量、B分量值分别为R(x,y)、G(x,y)、B(x,y))的灰度化:
裴来凡
2022/05/28
1.3K0
加权平均值灰度化
R语言中使用RCPP并行计算指数加权波动率
指数加权波动率是一种波动率的度量,它使最近的观察结果有更高权重。我们将使用以下公式计算指数加权波动率:
拓端
2020/11/19
8620
R语言中使用RCPP并行计算指数加权波动率
优化算法之指数移动加权平均
从没有白费的努力,也没有碰巧的成功。只要认真对待生活,终有一天,你的每一份努力,都将绚烂成花。
触摸壹缕阳光
2020/02/17
2.4K0
优化算法之指数移动加权平均
R语言用局部加权回归(Lowess)对logistic逻辑回归诊断和残差分析
目前,回归诊断不仅用于一般线性模型的诊断,还被逐步推广应用于广义线性模型领域(如用于logistic回归模型),但由于一般线性模型与广义线性模型在残差分布的假定等方面有所不同,所以推广和应用还存在许多问题(点击文末“阅读原文”获取完整代码数据)。
拓端
2023/08/30
3890
R语言用局部加权回归(Lowess)对logistic逻辑回归诊断和残差分析
R语言中多条件排序
R语言中,如何对数据框的数据根据某个条件进行排序呢?如何根据多条件进行排序呢,类似Excel中的排序效果:
邓飞
2022/04/06
6310
R语言中多条件排序
R语言用局部加权回归(Lowess)对logistic逻辑回归诊断和残差分析|附代码数据
目前,回归诊断不仅用于一般线性模型的诊断,还被逐步推广应用于广义线性模型领域(如用于logistic回归模型),但由于一般线性模型与广义线性模型在残差分布的假定等方面有所不同,所以推广和应用还存在许多问题
拓端
2023/05/11
3620
对linux系统中“平均负载”的理解
最近在极客时间学习了倪朋飞老师的《Linux性能优化实战》专题,里面讲到了linux的平均负载这个概念。也就是load average。现在谈谈对平均负载的理解,并整理为笔记。
冬天里的懒猫
2021/08/05
1K0
R语言使用马尔可夫链对营销中的渠道归因建模
在这篇文章中,我们看看什么是渠道归因,以及它如何与马尔可夫链的概念联系起来。我们还将通过一个电子商务公司的案例研究来理解这个概念在理论上和实践上如何运作(使用R)。
拓端
2020/07/17
1.2K0
R语言使用马尔可夫链对营销中的渠道归因建模|附代码数据
我们还将通过一个电子商务公司的案例研究来理解这个概念如何在理论上和实践上运作(使用R)。
拓端
2023/04/24
5550

相似问题

基于行折叠数据帧并计算加权平均值r

40

对R中的数据帧进行加权边列表类对

10

如何对pandas中的数据帧进行重采样并应用加权平均?

11

如何计算R中数据帧的条件平均值?

318

加权平均R

28
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文