我的问题是我创建了一个评分功能,根据他们的RFM评分对客户进行评级,并通过打印输出。但是,我想将分数存储在新的data.frame中以创建排名。 我尝试了返回函数和rbind以及我在函数外部创建的数据框。我在这个页面上阅读了很多问题,每个人都建议rbind或作为解决方案返回。但是,它们对我不起作用。 我将不胜感激任何帮助。提前致谢
这是我的代码,由于其重复行为而缩短了我的代码:
d<-data.frame()
getscore<-function(data.frame){
score<-25
if(((actual.date-last.purch.date(data.frame)))*12<6)
(
score<-score+40
)
score<-score+(amnt.purchases(data.frame)*6)
if((mean.last3purch(data.frame))<25)
(
score<-score+5
)
return(score)
}
为了更好地理解:这就是我想要的。 代码会自动将我的分数分配给一个名为score的新向量,然后将其与我的其他函数(概率和每个客户的名称)一起存储在数据框中以供参考,我手动编码。
Customer<-c("A","B","C","D","E","F","G")
Score<-c(123,312,312,4313,12,321,43)
probability<-c(0.23,0.43,0.12,0.45,0.53,0.23,0.333)
Ranking<-data.frame(Customer,Score,probability)
我尝试了以下内容:我创建了一个新的向量,其中包含了我的总客户的长度,并为其分配了向量RFM。但是,当我执行代码时会发生的事情是整个向量都填充了客户的分数。我如何告诉代码将得分放在备注行中?
RFM<-vector(length = length(Customers))
df<-data.frame(RFM)
df$RFM <- getscore(Customers$A) print(df)
当我尝试代码时,将第一个输入的分数再次设置为零
RFM<-vector(length = length(Customers))
df<-data.frame(RFM)
df$RFM <- getscore(Customers$A)
print(df) the code sets the score from the first input again to