R-大数据分析挖掘(5-R基础回顾)
(一)R函数
R是一种解析型语言,输入后可直接获取结果
函数(输入参数,参数)
R的函数分为“高级”和“低级函数”
• 高级函数可调用低级函数
• 高级函数称为泛型函数
• 函数名 <-‐ funcion(数据,参数=1,默认值){
• 异常处理
• 表达式
• return 返回值
• }
(二)R赋值与注释
• 2+2
• a < -‐2
• c <-‐ a+b
• #注释
(三)对象起名
• 1.区分大小写,China与china不同
• 2.不能用数字作为变量,对象也不能用数字开头
• 3.保留字
– NA,NaN,Pi,LETTERS,leBers,month 等
(四)元素的类型
• 数值型,Numeric
• 字符串,Character
• 逻辑型,Logical
• 因子型,Factor
• 复数型,Complex 如2+3i
• 向量(vector),一系列元素
– c(1,2,3);c(“a”,”a”,”b”,”b”,”c”)
• 因子(factor) 因子是一个分类变量
• c(“a”,”a”,”b”,”b”,”c”)
• 矩阵(matrix),二维的数据表,是一个数组的特例
• 数组(array)
– 数组是k维的数据表(k in 1:n ,n 为正整数)
• 数据框(dataframe)
– 是由一个或几个向量和因子构成,他们必须是等长的,但可以是不同但数据类型
• 列表
– 列表可以包含任何类型的对象
– 可以包含向量、矩阵、高维数组也可以包含lixt
运算符
• 数学运算
– +,-‐ ===
• 比较运算 返回true or false
– >,<,<=,>=,==
• 逻辑运算
– !,&,&&,|,||
外部数据读取
• read.table()
• read.csv() 读取csv或者
• 可以直接通过某些程序包读取excel等格式数据
• read.csv(‘file’,header=T)
– header=T 表示将数据的第一行作为标题
类的判断
• mode() 判断存储类型
• class(),判断数据的类
• is.numeric()
• is.logical()
• is.charactor()
数据框内元素的引用
• intake <-‐ data.frame(intake.pre,intake.post)
• 1. $ 引用列,后面为列的名称
– 例如:intake$ intake.pre
• 2. [,] 方括号,逗号前为行,逗号后为列
• intake[,1]
• I = 1:5;intake [i,]
类的转换
• as.numeric()
• as.logical()
• as.charactor()
• as.matrix()
• as.data.frame()
• as.factor()
(五)R操作Json
1.安装Json
2.加载进GUI中
3.从json转到R上
4。class判断类型,cat输出不带横线的json字符串,peint输出的带有/,可以通过$取到深层次的json串,最内层的可以用[]去得到
5.将toJson之后字符串输出到文件使用sink或者writeLines
(六)R 语言不仅在统计分析和数据挖掘领域计算能力强大,它在数据可视化领域也不逊于
昂贵的商业软件。当然,R 在可视化上强大,其背后离不开各种开源软件包的支持,Cairo
就是这样一个用于矢量图形处理的类库。Cairo 可以创建高质量的矢量图形 (GIF、SVG、
PDF、PostScript) 和位图 (PNG、JPEG、TIFF),同时支持在后台程序中高质量渲染!本节
将介绍 Cairo 在 R 语言中的使用。
1.安装
2.加载进GUI并检查Cairo包支持的图片格式
3.画散点图
(七)R中的时间序列基础库ZOO
时间序列分析是一种动态数据处理的统计方法,通过对时间序列数据的分析,我们可
以感觉到世界正改变着什么! R 语言作为统计分析的利器,对时间序列处理有着强大的支
持。在 R 语言中,单独为时间序列数据定义了一种数据类型 zoo,zoo 是时间序列的基础,
也是股票分析的基础。本节将介绍 zoo 库在 R 语言中的结构和使用。
1.介绍
zoo 是一个 R 语言类库,zoo 类库中定义了一个名为 zoo 的 S3 类型对象,用于描述规
则的和不规则的有序的时间序列数据。zoo 对象是一个独立的对象,包括索引、日期、时
间,只依赖于基础的 R 环境。zooreg 对象继承了 zoo 对象,只能用于规则的时间序列数据。
R 语言中很多其他的程序包,都是以 zoo 和 zooreg 作为时间序列数据的基础的!
zoo 包的API 主要有 6 类
(1)基础对象
zoo: 有序的时间序列对象。
zooreg: 规则的时间序列对象,继承 zoo 对象。与 zoo 相比,不同之处在于 zooreg 要求数据是连续的。
(2)类型转换
as.zoo: 把一个对象转型为 zoo 类型。
plot.zoo: 为 plot 函数提供 zoo 的接口。
xyplot.zoo: 为 lattice 的 xyplot 函数提供 zoo 的接口。
ggplot2.zoo: 为 ggplot2 包提供 zoo 的接口。
(3)数据操作
coredata: 查看或编辑 zoo 的数据部分。
index: 查看或编辑 zoo 的索引部分。
window.zoo: 按时间过滤数据。
merge.zoo: 合并多个 zoo 对象。
read.zoo: 从文件读写 zoo 序列。
aggregate.zoo: 计算 zoo 数据。
rollapply: 对 zoo 数据的滚动处理。
rollmean: 对 zoo 数据的滚动计算均值。
(4)NA 值处理
na.fill: NA 值的填充。
na.locf: 替换 NA 值。
na.aggregate: 计算统计值替换 NA 值。
na.approx: 计算插值替换 NA 值。
na.StructTS: 计算季节 Kalman 滤波替换 NA 值。
na.trim: 过滤有 NA 的记录。
(5)辅助工具
is.regular: 检查是否是规则的序列。
lag.zoo: 计算步长和差分。
MATCH: 取交集。
ORDER: 值排序,输出索引。
(6)显示控制
yearqtr: 以年季度显示时间。
yearmon: 以年月显示时间。
xblocks: 作图沿 x 轴分割图形。
make.par.list: 用于给 plot.zoo 和 xyplot.zoo 数据格式转换。