从函数中提取数据不起作用R.

时间:2016-12-20 19:03:50

标签: r function dataframe

我的问题是我创建了一个评分功能,根据他们的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 

0 个答案:

没有答案