在工作中,我们越来越多的发觉到数据的重要性,数据作为可以引导项目或团队的一个重要方向与指标,那么通常应该如何获取数据与处理数据呢?本次分享内容,是针对于行为数据的分析与运算,进行的实例分享.希望大家可以各有收获

Client

Server

数据的处理

一般,我们会通过很多的方法去处理数据 R、Python、Sql 语句等,今天我们用 shell 做一下简单的用户付费间隔的解析

首先,我们需要从源数据中取出你所需要的字段内容,比如 rfm 模型中付费玩家的列表 (rfm_play.txt)、rfm 模型中玩家的付费次数 (rfm_times)

我们已经拿到这 2 组现有的对我们有帮助的 list. 那么下一步就是对这三部分的数据进行运用

cat rfm-play.txt | while read line 
do                                 
    end=`grep -w $line rfm-test.txt | tail -n 1 | awk -F ' ' '{print $3}'`
    sec=`grep -w $line rfm-test.txt | tac | sed -n 2p | awk -F ' ' '{print $3}'`
done

把这两组数据记录到 rfmuniq.txt 中,来作为我们对时间戳运算的数据源
输出 $end 和 $sec 会发现, 我们回去了用户的最后一次付费和倒数第二次付费的时间戳,

既然有了两次付费的时间戳,那么, 我们就来做一下简单的数据运算,查看一下用户的两次付费间隔是多久呢?

cat rfm-play.txt | while read line 
do                                 
      end1=`grep -w $line rfmuniq.txt | awk -F ',' '{print $3}' | tac | tail -n 1`
      end2=`grep -w $line rfmuniq.txt | awk -F ',' '{print $3}' |  tail -n 1`
      echo $line "  "$((((end1-end2))/1000/60))':min'                                                                                                                     
 done      

这样,一个简单的统计用户两次付费间隔的脚本就完成了, 这个脚本中可能会用到几个知识点.

While 循环、grep、awk、sed、date 等方法,大家在熟练过程中可能需要摸索一下逻辑关系, 如果有什么问题可以在评论区留言

测试的日常工作中,linux 的常用使用方法,如果想获得更多游戏测试的相关内容,请关注 Testerhome::https://testerhome.com/

下一期,我们会加大数据量与运算量,请大家持续关注


↙↙↙阅读原文可查看相关链接,并与作者交流