【发布时间】:2018-07-28 08:30:20
【问题描述】:
这是公式:
????。 ??? × ???? + ????。 ??? × ???? + ????。 ??? × ????
我想从代表 R、F 和 M
的 3 列中找到加权平均值我试过了:
vvv$rfm_score=weighted.mean(x=c(vvv$rank_recency, vvv$rank_freq, vvv$rank_monetary_v)
,w=c(.2,.3,.5))
但它给出的列对于所有行都是相同的?
为了澄清,每列都有一个从 1 到 5 的数字。稍后,加权平均值会按照公式中显示的方式计算,每次根据需要使用其中一列。
问题肯定出在我使用 weighted.mean 函数的方式上,但在尝试了不同的方法并查看帮助页面后,我可以找到正确的方法。
【问题讨论】:
-
权重参数是
w,而不是y。 -
可能是
apply(vvv, 1, weighted.mean, w = c(0.2, 0.3, 0.5))。 -
@ekstroem ;假设没有遗漏
-
@ekstroem 矩阵版本可能是正确的,但您能否让
apply版本在示例上工作,因为它返回:'x' and 'w' must have the same length -
apply(vvv[c("rank_recency", "rank_freq", "rank_monetary_v")], 1, weighted.mean, w = c(0.2, 0.3, 0.5))怎么样?
标签: r statistics