大数据人|大数据第一社区

 找回密码
 注册会员

扫一扫,访问微社区

【学习】《R实战》读书笔记(第五章)

2014-7-29 14:35| 发布者: admin| 查看: 533| 评论: 0|来自: PPV课

摘要: 第五章 高级数据管理 本章概要 1 数学和统计函数 2 字符函数 3 循环和条件执行 4 用户所写函数 5 聚合和改造数据的方法

第五章 高级数据管理

本章概要

1 数学和统计函数

2 字符函数

3 循环和条件执行

4 用户所写函数

5 聚合和改造数据的方法

本章所介绍内容概括如下。

本章是数据管理高级主题,包含三部分,第一部分,数学、统计、字符操作的函数;第二部分,用户所写函数实现数据管理和分析任务;第三部分,总结、聚合和改造数据的方式。

数据管理的挑战

学生考试数据如图1所示。

图1:学生考试数据


想一想,如何管理上述数据,又如何发现该数据的价值?

数值和字符函数

数值函数,包括数学、统计和概率函数。

常用数学函数如图2所示。

图2:常用数学函数


举例说明如下:

> rm(list=ls())

> abs(-2)

[1] 2

> sqrt(c(1,4,9))

[1] 1 2 3

> ceiling(3.4)

[1] 4

> floor(3.4)

[1] 3

> trunc(3.4)

[1] 3

> round(3.48,digits=1)

[1] 3.5

> signif(3.48, digits=1)

[1] 3

> cos(pi/3)

[1] 0.5

> sin(pi/2)

[1] 1

> tan(pi/4)

[1] 1

> acos(1)

[1] 0

> asin(1)

[1] 1.570796

> atan(1)

[1] 0.7853982

> cosh(1)

[1] 1.543081

> sinh(1)

[1] 1.175201

> tanh(1)

[1] 0.7615942

> acosh(1)

[1] 0

> asinh(1)

[1] 0.8813736

> atanh(1)

[1] Inf

> log(10,base=10)

[1] 1

> log(10)

[1] 2.302585

> log10(10)

[1] 1

> exp(2)

[1] 7.389056

常用统计函数如图3所示:

图3:常用统计函数


举例说明如下:

> mean(c(1,2,3))

[1] 2

> median(c(1,2,3,4))

[1] 2.5

> sd(c(1,2,3,4))

[1] 1.290994

> var(c(1,2,3,4))

[1] 1.666667

> mad(c(1,2,3,4))

[1] 1.4826

> x <- rnorm(100)

> y <- quantile(x, c(.3,.84))

> y

30% 84%

-0.6016543 0.8953049

> rang(c(1,2,3,4))

Error: could not find function “rang”

> range(c(1,2,3,4))

[1] 1 4

> sum(c(1,2,3,4))

[1] 10

> diff(c(1,4,10,100))

[1] 3 6 90

> diff(c(1,4,10,100),lag=2)

[1] 9 96

> min(c(1,2,3,4))

[1] 1

> max(c(1,2,3,40))

[1] 40

计算平均值和标准差的两种方法。

方法一:直接使用统计函数

> rm(list=ls())

> x <- c(1,2,3,4,5,6,7,8)

> mean(x)

[1] 4.5

> sd(x)

[1] 2.44949

方法二:利用统计学对平均值和标准差的定义式

> rm(list=ls())

> x <- c(1,2,3,4,5,6,7,8)

> n <- lenght(x)

Error: could not find function “lenght”

> n <- length(x)

> meanx <- sum(x) / n

> css <- sum((x - meanx)**2)

> sdx <- sqrt(css / (n-1))

> meanx

[1] 4.5

> sdx

[1] 2.44949

拓展:归一化函数scale()

常用与概率学相关的函数。

四个名字:概率密度(d)、概率分布函数(p)、概率分位数(q)、概率随机数(r)。

图4:概率学相关函数


举例说明如下:

> rm(list=ls())

> x <- pretty(c(-3,3), 30)

> y <- dnorm(x)

> plot(x,y,type=”l”,xlab=”Normal Deviate”, ylab=”Density”,yaxs=”i”)

> pnorm(2)

[1] 0.9772499

> qnorm(0.975)

[1] 1.959964

效果图如图5所示。


图5:标准正态分布概率密度曲线


为了进行可重复性实验,我们产生随机数,需要设置种子,举例说明如下:

> runif(5)

[1] 0.07873035 0.93082409 0.05424750 0.96919193 0.52518331

> runif(5)

[1] 0.86842132 0.91613675 0.13160823 0.22718509 0.06111121

> set.seed(100)

> runif(5)

[1] 0.30776611 0.25767250 0.55232243 0.05638315 0.46854928

分享到: QQ空间 新浪微博 腾讯微博 人人网 飞信 百度搜藏


鲜花

握手

雷人

路过

鸡蛋

最新评论

关闭

站长推荐上一条 /2 下一条


id="mn_portal" >首页Portalid="mn_P18" onmouseover="navShow('P18')">应用id="mn_P15" onmouseover="navShow('P15')">技术id="mn_P37" onmouseover="showMenu({'ctrlid':this.id,'ctrlclass':'hover','duration':2})">前沿id="mn_P36" onmouseover="navShow('P36')">宝箱id="mn_P61" onmouseover="showMenu({'ctrlid':this.id,'ctrlclass':'hover','duration':2})">专栏id="mn_P65" >企业id="mn_Nd633" >导航 折叠导航 关注微信 关注微博 关注我们

QQ|广告服务|关于我们|Archiver|手机版|小黑屋|大数据人 ( 鄂ICP备14012176号-2  

GMT+8, 2024-5-4 00:46 , Processed in 0.205127 second(s), 21 queries .

Powered by 小雄! X3.2

© 2014-2020 bigdataer Inc.

返回顶部