R语言常用函数整理(基础篇)

Python023

R语言常用函数整理(基础篇),第1张

R语言常用函数整理本篇是基础篇,即R语言自带的函数。 vector:向量 numeric:数值型向量 logical:逻辑型向量 character;字符型向量 list:列表 data.frame:数据框 c:连接为向量或列表 length:求长度 subset:求子集 seq,from:to,sequence:等差序列 rep:重复 NA:缺失值 NULL:空对象 sort,order,unique,rev:排序 unlist:展平列表 attr,attributes:对象属性 mode,class,typeof:对象存储模式与类型 names:对象的名字属性 字符型向量 nchar:字符数 substr:取子串 format,formatC:把对象用格式转换为字符串 paste()、paste0()不仅可以连接多个字符串,还可以将对象自动转换为字符串再相连,另外还能处理向量。 strsplit:连接或拆分 charmatch,pmatch:字符串匹配 grep,sub,gsub:模式匹配与替换 complex,Re,Im,Mod,Arg,Conj:复数函数 factor:因子 codes:因子的编码 levels:因子的各水平的名字 nlevels:因子的水平个数 cut:把数值型对象分区间转换为因子 table:交叉频数表 split:按因子分组 aggregate:计算各数据子集的概括统计量 tapply:对“不规则”数组应用函数 dev.new() 新建画板 plot()绘制点线图,条形图,散点图. barplot( ) 绘制条形图 dotchart( ) 绘制点图 pie( )绘制饼图. pair( )绘制散点图阵 boxplot( )绘制箱线图 hist( )绘制直方图 scatterplot3D( )绘制3D散点图. par()可以添加很多参数来修改图形 title( ) 添加标题 axis( ) 调整刻度 rug( ) 添加轴密度 grid( ) 添加网格线 abline( ) 添加直线 lines( ) 添加曲线 text( ) 添加标签 legend() 添加图例 +, -, *, /, ^, %%, %/%:四则运算 ceiling,floor,round,signif 1、round() #四舍五入 例:x <- c(3.1416, 15.377, 269.7) round(x, 0) #保留整数位 round(x, 2) #保留两位小数 round(x, -1) #保留到十位 2、signif() #取有效数字(跟学过的有效数字不是一个意思) 例:略 3、trunc() #取整 floor() #向下取整 ceiling() #向上取整 例:xx <- c(3.60, 12.47, -3.60, -12.47) trunc(xx) floor(xx) ceiling(xx) max,min,pmax,pmin:最大最小值 range:最大值和最小值 sum,prod:向量元素和,积 cumsum,cumprod,cummax,cummin:累加、累乘 sort:排序 approx和approx fun:插值 diff:差分 sign:符号函数 abs,sqrt:绝对值,平方根 log, exp, log10, log2:对数与指数函数 sin,cos,tan,asin,acos,atan,atan2:三角函数 sinh,cosh,tanh,asinh,acosh,atanh:双曲函数 beta,lbeta,gamma,lgamma,digamma,trigamma,tetragamma,pentagamma,choose ,lchoose:与贝塔函数、伽玛函数、组合数有关的特殊函数 fft,mvfft,convolve:富利叶变换及卷积 polyroot:多项式求根 poly:正交多项式 spline,splinefun:样条差值 besselI,besselK,besselJ,besselY,gammaCody:Bessel函数 deriv:简单表达式的符号微分或算法微分 array:建立数组 matrix:生成矩阵 data.matrix:把数据框转换为数值型矩阵 lower.tri:矩阵的下三角部分 mat.or.vec:生成矩阵或向量 t:矩阵转置 cbind:把列合并为矩阵 rbind:把行合并为矩阵 diag:矩阵对角元素向量或生成对角矩阵 aperm:数组转置 nrow, ncol:计算数组的行数和列数 dim:对象的维向量 dimnames:对象的维名 rownames,colnames:行名或列名 %*%:矩阵乘法 crossprod:矩阵交叉乘积(内积) outer:数组外积 kronecker:数组的Kronecker积 apply:对数组的某些维应用函数 tapply:对“不规则”数组应用函数 sweep:计算数组的概括统计量 aggregate:计算数据子集的概括统计量 scale:矩阵标准化 matplot:对矩阵各列绘图 cor:相关阵或协差阵 Contrast:对照矩阵 row:矩阵的行下标集 col:求列下标集 solve:解线性方程组或求逆 eigen:矩阵的特征值分解 svd:矩阵的奇异值分解 backsolve:解上三角或下三角方程组 chol:Choleski分解 qr:矩阵的QR分解 chol2inv:由Choleski分解求逆 ><,>,<=,>=,==,!=:比较运算符 !,&,&&,|,||,xor(): 逻辑运算符 logical: 生成逻辑向量 all, any:逻辑向量都为真或存在真 ifelse():二者择一 match, %in%:查找 unique:找出互不相同的元素 which:找到真值下标集合 duplicated:找到重复元素 optimize,uniroot,polyroot:一维优化与求根 if,else, ifelse, switch: 分支 for,while,repeat,break,next: 循环 apply,lapply,sapply,tapply,sweep:替代循环的函数。 function:函数定义 source:调用文件 ’ call:函数调用 . C,.Fortran:调用C或者Fortran子程序的动态链接库。 Recall:递归调用 browser,debug,trace,traceback:程序调试 options:指定系统参数 missing:判断虚参是否有对应实参 nargs:参数个数 stop:终止函数执行 on.exit:指定退出时执行 eval,expression:表达式计算 system.time:表达式计算计时 invisible:使变量不显示 menu:选择菜单(字符列表菜单) 其它与函数有关的还有: delay, delete.response, deparse, do.call, dput, environment , formals, format.info, interactive, is.finite, is.function, is.language, is.recursive , match.arg, match.call, match.fun, model.extract, name, parse 函数能将字符串转换为表达式expression deparse 将表达式expression转换为字符串 eval 函数能对表达式求解 substitute, sys.parent , warning, machine cat,print:显示对象 sink:输出转向到指定文件 dump,save,dput,write:输出对象 scan,read.table,readlines, load,dget:读入 ls,objects:显示对象列表 rm, remove:删除对象 q,quit:退出系统 .First,.Last:初始运行函数与退出运行函数。 options:系统选项 ?,help,help.start,apropos:帮助功能 data:列出数据集 head()查看数据的头几行 tail()查看数据的最后几行 每一种分布有四个函数: d―density(密度函数),p―分布函数,q―分位数函数,r―随机数函数。 比如,正态分布的这四个函数为dnorm,pnorm,qnorm,rnorm。下面我们列出各分布后缀,前面加前缀d、p、q或r就构成函数名: norm:正态, t:t分布, f:F分布, chisq:卡方(包括非中心) unif:均匀, exp:指数, weibull:威布尔, gamma:伽玛, beta:贝塔 lnorm:对数正态, logis:逻辑分布, cauchy:柯西, binom:二项分布, geom:几何分布, hyper:超几何, nbinom:负二项, pois:泊松 signrank:符号秩, wilcox:秩和, tukey:学生化极差 sum, mean, var, sd, min, max, range, median, IQR(四分位间距)等为统计量, sort,order,rank与排序有关, 其它还有ave,fivenum,mad,quantile,stem等。 R中已实现的有chisq.test,prop.test,t.test。 cor,cov.wt,var:协方差阵及相关阵计算 biplot,biplot.princomp:多元数据biplot图 cancor:典则相关 princomp:主成分分析 hclust:谱系聚类 kmeans:k-均值聚类 cmdscale:经典多维标度 其它有dist,mahalanobis,cov.rob。 ts:时间序列对象 diff:计算差分 time:时间序列的采样时间 window:时间窗 lm,glm,aov:线性模型、广义线性模型、方差分析 quo()等价于quote() enquo()等价于substitute()

用的最多的,是求均值的mean()函数,当然这里也要提到,像sum()这种求和函数,

还有sd(x) 标准差函数,var(x) 方差函数。min()求最小值,max()求最大值。

我们来具体试试,这里使用一个向量:

test<-c(2,4,5,23,199,25,78,90,12)

求最大值

>max(test)

[1] 19

求最小值

>min(test)

求和

>sum(test)

[1] 43

求标准差,求方差

>sd(test)

[1] 65.01154

>var(test)

[1] 4226.

在来试试最重要的均值

>mean(test)

[1] 48.66667

另外中位数计算。使用median()函数

>median(test)

[1] 23

如果给定一种概率分布,通常会有四类计算问题:

计算其概率密度density (d)计算其概率分布probability(p)计算其百分位数quantile (q)随机数模拟random (r)上面四类计算对应的英文首字母,就是R语言类率分布函数的开头字母。

比如说,正态分布是norm的化,那密度函数就是dnorm(),分布函数就是pnorm(),

更有用的是用相应分布生成随机数,比如rnorm(),就会生成服从正态分布的随机数。

比如我们生成100个服从正态分布的随机数

rnorm(100)

[1] -9.064408e-01 1.026560e+00 -1.097470e+00 1.055395e+00 9.377175e-01

[6] -2.080103e-01 -3.092396e-01 -8.739942e-01 -1.242774e+00 1.102486e+00

[11] 1.082092e+00 -1.695528e+00 -5.930809e-01 -2.100800e-01 8.253859e-01

[16] -1.112551e+00 -3.960474e-01 -9.354820e-01 7.291608e-01 -3.773510e-01

[21] -3.438082e-01 -7.378688e-02 -9.047609e-01 -1.036344e+00 9.485103e-01

[26] -3.437985e-01 -2.145275e-02 1.350098e+00 -1.283633e+00 3.767240e-01

[31] 1.169566e+00 -4.325399e-01 -9.215626e-02 3.839357e-01 3.045491e-01

......

我们再用相应的频率分布直方图来看一下,这些生成的随机数:

hist(rnorm(100))

R就画出了这些随机数的频率分布图

本书从实际应用出发,结合实例及应用场景,通过对大量案例进行详细阐述和深入分析,进而指导读者在实际工作中通过R语言对 游戏 数据进行分析和挖掘。这是一本关于数据分析实战的书籍,里面的知识、方法、理论是可以直接应用到整个互联网的。

全书一共13章,分为三篇:基础篇、实战篇和提高篇。

第一篇是基础篇(第1~4章): 介绍了 游戏 数据分析的基本理论知识、R语言的安装与使用、R语言中的数据结构、常用操作和绘图功能。

第1章主要介绍了 游戏 数据分析的必要性和流程;第2章讲解了R语言和RStudio的安装及使用方法,并对数据对象和数据导入进行了介绍;第3章介绍了R语言绘图基础,包括常用图形参数设置、低级绘图函数和高级绘图函数;第4章介绍了lattice和ggplot2绘图包,并详细介绍了一些基于R语言可用于生成交互式图形的软件包,包括rCharts、recharts、rbokeh、plotly等。

第二篇是实战篇(第5~11章): 主要介绍了 游戏 数据的预处理、常用分析方法、玩家路径分析和用户分析。

第5章介绍了 游戏 数据预处理常用的手段,包括数据抽样、数据清洗、数据转换和数据哑变量处理;第6章介绍了 游戏 数据分析的常用方法,包括指标数据可视化、 游戏 数据趋势分析、 游戏 数据相关性分析和 游戏 数据中的降维技术;第7章介绍了事件点击行为常用的漏斗分析和路径分析;第8章介绍了留存指标的计算、留存率计算与预测、常用分类算法原理和模型评估;第9章介绍了常用用户指标计算、LTV计算与预测、用户物品购买关联分析、基于用户物品购买智能推荐和 社会 网络分析;第10章介绍了渠道数据分析的必要性和对渠道用户进行质量评级;第11章介绍了常用收入指标计算、利用用户活跃度衡量 游戏 经济状况、RFM模型研究。

第三篇是提高篇(第12~13章): 介绍了R语言图形界面工具Rattle和Web开发框架shiny包。

第12章介绍了R语言的图形界面工具Rattle,该工具能够在图形化的界面上完成数据导入、数据 探索 、数据可视化、数据建模和模型评估整个数据挖掘流程;第13章介绍了Web开发框架shiny包,使得R的使用者不必太了解CSS、JS,只需要了解一些HTML的知识就可以快速完成Web开发。

关键词: 程序语言,程序设计

完整课程可前往UWA学堂《R语言 游戏 数据分析与挖掘》阅读。

https://edu.uwa4d.com/course-intro/0/383

随着 游戏 市场竞争的日趋激烈,在如何获得更大收益延长 游戏 周期的问题上,越来越多的手机 游戏 开发公司开始选择借助大数据,以便挖掘更多更细的用户群来进行精细化、个性化的运营。数据分析重要的不是提供 历史 和现状,而是通过分析发现手机 游戏 现状,以及对未来进行预测。一切以数据出发,用数据说话,让数据更好地指导运营服务好玩家,对玩家的行为和体验不断进行分析和调整,使玩家可以在虚拟世界中得到各方面的满足。要实现这个目的,需要搭建专业的数据化运营团队。此外, 游戏 数据分析与其他行业的数据分析不同的是, 游戏 综合了经济、广告、社交、心理等方面的内容,这就对数据分析师提出了更高的要求。

伴随着 游戏 互联网的快速发展和智能终端的普及,移动 游戏 进入了全民时代。越来越多的玩家利用碎片化时间进行 游戏 ,使得 游戏 数据呈现井喷式增长,同时也对数据存储技术、计算能力、数据分析手段提出了更高的要求。海量数据的存储是必须面对的第一个挑战,随着分布式技术的逐渐成熟,越来越多的互联网企业采用分布式的服务器集群 分布式存储的海量存储器进行数据的存储和计算,从而解决数据存储和计算能力不足的问题。如何在海量的、复杂高维的 游戏 数据中发掘出有价值的知识,将是很多公司下一步亟待解决的难题。

虽然积累了海量的玩家数据,很多公司也开发了自己的BI报表系统,但是多数停留在“看数据”阶段,还是用传统的数据分析方法对数据进行简单的加工、统计及展示,并没有进行深度挖掘发现数据背后的规律和把握未来趋势。正是在这样的大背景下, 游戏 数据分析逐渐在 游戏 行业中变得重要。公司需要从传统的粗放型运营进化到精细化运营,从而了解如何有效地获取用户、评估效果;如何激活用户、评估产品质量;如何提升收益,并挖掘潜在的高价值用户。要满足精细化运营的需求,数据化运营就应运而生了。数据化运营就是在以海量数据的存储、分析、挖掘和应用的核心技术支持的基础上,通过可量化、可细分、可预测等一系列精细化的方式来进行的。

数据化运营是飞速发展的数据存储技术、数据挖掘技术等诸多先进数据技术直接推动的结果。数据技术的飞速发展,使数据存储成本大大减低,同时提供了成熟的数据挖掘算法和工具让公司可以去尝试海量数据的分析、挖掘、提炼和应用。有了数据分析、数据挖掘的强有力支持,运营不再靠“拍脑袋”,可以真正做到运营过程自始至终都心中有数。比如,在玩家的细分推送中,数据分析师利用数据挖掘手段对玩家进行分群,运营根据不同的用户群制定差异化策略,数据分析师再根据推送效果进行评估。

完整课程可前往UWA学堂《R语言 游戏 数据分析与挖掘》阅读。

https://edu.uwa4d.com/course-intro/0/383

1、 游戏 数据分析师

2、 游戏 产品运营人员

3、产品数据挖掘