R语言基础汇总

Python07

R语言基础汇总,第1张

%>%是管道符的意思,把左边的输出(不包括 <- 之前的)当成右边的输入。

都可以shift + alt + 上下 :快速复制粘贴

alt + 上下 :移动行

ctrl + alt + 上下 :多重光标

首先选中要注释掉的行,然后按Ctrl+shift+C ,这样就注释掉了。

sessionInfo()

.libPaths()

一篇关于包的博客

library(installr)

updateR()

COS中文论坛 统计之都旗下的论坛网站(d.cosx.org),它和其主站(cosx.org)一 起,是一个致力于推广与应用统计学知识的网站和社区。

1 help("t.test")

2 ?t.test

3 help.search("t.test")

4 apropos("t.test")

5 RGui>Help>Html help

6 查看R包pdf手册

getwd() 显示工作目录

setwd() 设定工作目录

list.files() 列出目录或文件夹下的文件

demo( ) 显示R的基本程序包

example( ) 显示在线帮助的例子

example(barplot)

可以把若干行命令保存在一个文本文件(比如Eg3.R)中,然 后用source函数来运行整个文件: source("E:/R demo/Chapter1-Eg3.R")

sum, mean, var, sd, min, max, range, median, IQR(四分位间距)等为统计量, sort,order,rank与排序有关, 其它还有ave,fivenum,mad,quantile, stem等

-1:1/0 当中/是优先级靠后的操作。相当于c(-1,0,1)/0

names(df) <- c("male", "female", "unknown")

对于矩阵,我们可以使用属性rownames和colnames来访问行名和列名。

我们也可以先定义矩阵x然后再为dimnames(x)赋值:

数值型数据 :1.2345e30

复数常量就用3.5-2.1i

缺失值:NA(Not Available)

是否含有缺失值:

NaN表示不确定的数

NaN属于NA的一种

NA不是NaN

注意下面例子的比较 :

assign("x1", c(1, 2))

sort(x)返回x的元素从小到大排序的结果向量。

x=c(2,10,6,8,4,5)sort(x) [1] 2 4 5 6 8 10  order(x)返回使得x从小到大排列的元素下标向量(x[order(x)]等效于sort(x))。

此外numeric(n)可以产生一个长度为n的零向量(numeric(n)是一个 很好用的外部存储器)

paste函数用来把它的自变量连成一个字符串,中间用空格分开

Re( )计算实部,Im( )计算虚部, Mod( ) 计算复数模,Arg( )计算复数幅角。

v为一个向量,取值在-length(x)到-1之间,表示扣除相应 位置的元素。例如:

可以用x[]的写法:

R的对象有两个基本的属性:类型属性(mode)和长度属性(length)。

长度为零的向量 numeric( ) 或者 numeric(0) character( ) 或者 character(0)

数组(array): 带多个下标的类型相同的元素的集合,

函数matrix():用于构造二维数组,即矩阵

函数factor( )用来把一个向量编码成为一个因子。

可以自行指定各离散取值水平(levels),不指定时由x的不同值来求得。

• labels可以用来指定各水平的标签,不指定时用各离散取值的对应字符串。

• exclude参数用来指定要转换为缺失值(NA)的元素值集合。

• ordered取真值时表示因子水平(Levels)是有次序的

因子可以用来作为另外的同长度变量的分类变量,使用tapply() 函数可以完成分类统计

nchar()这个函数简单,统计向量中每个元素的字符个数

tolower()和toupper()可以进行大小写字母的转换

chartr()把字符串里的元素,按要求进行转换

拆分字符串用strsplit()函数,strsplit得到的结果是列表,后面的处理要调用列表

其任何一个语句都可以看成是一个表达式。

表达式之间以分号分隔或用换行分隔。

表达式可以续行,只要前一行不是完整表达式,则下一行为上一行的继续。

线性回归模型:

lm()函数的返回值叫做模型拟合结果对象,本质上是一个列表, 有model 、coefficients、residuals等成员。lm()的结果显示十分 简单,为了获得更多的拟合信息,可以使用对lm类对象有特 殊操作的通用函数,这些函数包括:

add1 coef effects kappa predict residuals alias deviance family labels print summary anova drop1 formula plot proj

加号+或 者减号-,表示在模型中加入一项或去掉一项,第一项前面如果是加号可以 省略

在非交互运行(程序)中应使用print()来输出。

• digits参数指定每个数输出的有效数字位数;

• quote 参数指定字符串输出时是否带两边的撇号;

• print.gap参数指定矩阵或数组输出时列之间的间距

也用来输出,但它可以把多个参数连接起来再输出(具有paste() 的功能)。例如:

读取文件:

strsplit()得到的结果是 列表。

grep() grepl()

sub()和gsub()

但严格地说R语言 没有字符串替换的函数,因为R语言不管什么操作对参数都是传值不传址,区别如下:

用substr()和substring() 可以通过位置进行字符串拆分或提取,两者的参数设置基本相同:

strtrim() 函数可以用于将字符串修剪到特定的显示宽度通过位置进 行字符串拆分或提取:

由于日期内部是用double存储的天数,所以是可以相减的。

weekdays ( )取日期对象所处的周几;

months ( )取日期对象的月份;

quarters ( )取日期对象的季度;

其任何一个语句都可以看成是一个表达式。

表达式之间以分号分隔或用换行分隔。

表达式可以续行,只要前一行不是完整表达式,则下一行为上一行的继续。

quantile(x, probs=seq(0,1,0.25), na.rm=FALSE, names=TRUE, type=7, …)

probs给出相应的百分位数,默认值是0,0.25,0.5,0.75,1;na.rm是处 理缺失数据的,na.rm=TRUE时,NA和NaN将从数据中移走,向量取值中 若有NA或NaN,要添加这一参数,否则会出错;names若为TRUE,返回 值当中有names这个属性"type是取值1-9的整数,选择了九种分位数算法 (具体算法见帮助文件)中的一种。

数据的分布主要考察分布函数(p), 密度函数(d), 分位数函数(q)及产生随机数(r)

以正态分布为例:

hist(x, breaks="Sturges", freq=NULL, probability=!freq,… )

break规定了直方图的组距(必须覆盖数据的范围);freq是逻辑变量,TRUE是频率直方图, FALSE是密度直方图;probability和freq相反,TRUE是密度直方图,FALSE是频率直方图

其形式为 coplot(y ~ x | z),其中x 和y是数值型向量,z是同长度的因子。 对z的每一水平,绘制相应组的x和y的散点图

R缺省的图形边空常常太大,以至于有时图形窗口较小时边空占了整个图形的很大一部分。

R可以在同一页面开若干个按行、列排列的窗格,在每个窗格中可以作一 幅图。每个图有自己的边空,而所有图的外面可以包一个“外边空”。

一页多图用 mfrow 参数或 mfcol 参数规定,如

函数 mtext 用来在外边空加文字标注。其用法为

在多图环境中还可以用 mfg 参数来直接跳到某一个窗格,比如

可以不使用多图环境而直接在页面中的任意位置产生一个窗格来绘图,参数为 fig ,如:

先用as.factor()转化成因子。因为levels()函数里面必须是因子。

dat$Genre没有转化成因子形式,as.factor(dat$Genre)就可以了

该消息表明文件的最后一行不以行尾 (EOL) 字符结尾(换行符 ( \n ) 或回车 + 换行符 ( \r\n ))。此消息的初衷是警告您该文件可能不完整;大多数数据文件都有一个 EOL 字符作为文件中的最后一个字符。

这是因为R读取文件的时候,是一整段character,所以它只会返回1,适当给他分一下段。

今天看了决策树的用法,个人觉得不管是分类或聚类算法,出来的结果是一个“规则”。至于要怎么去分类数据,是根据这个“规则” 来做的。所以,提取数据是另外一个工作了。## 更新日期:2015/11/11前段时间在做聚类分析,用到hclust() 函数,将数据聚类分组后,对应到每一个ID。具体如下:d = dist(testdata, method = "euclidean") hcward = hclust(d, method="ward.D") data$groups = cutree(hcward,k=8) # 到这里,data 中的每个ID都对应到相应的group 了

本书从实际应用出发,结合实例及应用场景,通过对大量案例进行详细阐述和深入分析,进而指导读者在实际工作中通过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、产品数据挖掘