数据科学工程师面试宝典系列---R语言入门

基础入门

摘要:讲解R的操作知识,了解R的特点、资源获取方式,并掌握基本的程序编写

什么是R

R语言是一种业界盛行的数据分析编程语言

理念就是快速、准确地把想法转化成软件

R语言脱胎于1980年左右诞生的S语言

在1998年被美国计算机协会(ACM)授予了“软件系统奖”

1997年R语言正式成为GNU项目

2010年获得第一届“统计计算及图形奖”(美国统计协会)

R语言的特点

开源和免费

功能强大且扩展性强

与其他软件的交互能力强

各类前沿的数据分析建模方法

实现可重复性(Reproducible)分析

适用于多操作系统的轻量化平台

编程简单

更新快速且文档完备

R的整合能力

数据:可连接数据库,如Oracle、MySQL

运算:可调用C或Fortran函数进行底层运算

应用:可作为运算引擎嵌入到Java开发的系统中(Rserve)

网络:R与web整合部署(Rook、shiny)

R的弱点

解释型语言

数据全部读入内存

单线程

改进效能的方法

善用R的语法

升级硬件

使用64位系统

租用云计算(EC2)

compile预编译

调用C或Fortran

并行计算、MapReduce、RHadoop

和其他软件的对比

SPSS、SAS、Stata

图形用户界面,无需写代码

局限于已有算法

不适合可重复分析

Matlab

数值运算能力强

通常用于命令行交互

商业软件不利于整合其他软件

Python(NumPy/SciPy)

功能全面,自由度高

要求很强的能力

工具只是数据工作的一部分,根据自身能力和需求来选择

R可以做什么?

统计计算与绘图(学术界)

金融分析

生命科学

互联网数据挖掘

社会化网络分析和可视化

task views

哪些公司在使用R

如何学习R

R语言官方网站

R-blogger

R语言期刊

R语言搜索引擎

R函数在线帮助

关于R的问答网站

统计之都

中国R语言会议

美国计算机世界杂志提供的R语言初学者入门资料

如何得到帮助,相关资源和书籍

初学入门:

《R in Acion》

《The Art of R Programming》

统计进阶:

《A Handbook of Statistical Analysis_Using_R》

《Modern Application Statistics With S》

科学计算:

《Introduction to Scientific Programming and Simulation Using R》

数据挖掘:

《Data Mining with R:Learning with Case Studies》

《An Introduction to Statistical Learning》

RStudio,扩展包,工作空间

R的官方网站;

RStudio开发环境;

扩展包的安装和加载;

install.packages("ggplot2")

library(ggplot2)

如何得到帮助

help.start()打开帮助文档首页

help("foo")或?foo查看函数foo的帮助(引号可以省略)

help.search("foo")或?foo以foo为关键词搜索本地帮助文档函数foo的使用示例(引号可以省略)

example(“foo”)函数foo的使用示例(引号可以省略)

RSiteSearch(“foo”)以foo为关键词搜索在线文档和邮件列表存档

apropos("foo",mode="function")列出名称中含有foo的所有可用函数

data()列出当前加载包中所含的所有可用示例数据集

vignette()列出当前已安装包中所有可用的vignette文档

vignette(“foo”)为主题foo显示指定的vignette文档

工作目录和工作空间

数据科学工程师面试宝典系列---R语言入门_第1张图片

运行R代码的方式

数据科学工程师面试宝典系列---R语言入门_第2张图片

数据对象

数据科学工程师面试宝典系列---R语言入门_第3张图片

向量化操作

向量之间除了四则运算外,还可以进行比较;

函数和控制语句

(1)在R语言中,所有的操作和运算都是由函数来完成的,和数学中的函数类似,大多数的函数都是由函数名和参数这两项组成的,例如下面计算指数的例子,“exp”是函数名,括号中的1则是参数:

exp(1)

exp(c(1,2,3,4))

(2)R语言中可以将各种变量赋值为一个变量,这种赋值操作就是等号“=”,也可以使用“<-”,下面的例子就是先将变量x赋值为一个向量,然后求取其对数。

x<-c(1,2,3,4)

log(x)

(3)如果我们想从变量x中取出一个元素的话,可以使用方括号加索引号,下面取出第二个元素:

x[2]

x[2:4]

x[-4]

x[x>2]

(4)数组

数组(Array)是一种多维的向量,建立数组的方法如下:

a<-array(1:12,dim=c(3,4))

print(a)

a[2,2]

a[2,]

(5)数据框

数据框(Data Frame)是一种类似于Excel表格的数据结构,其中每列的数据类型可以不同,但数据长度必须一致,数据框非常适合用来进行数据分析,它的每一列可以代表数据的每个变量或属性,每一行可以代表一个样本,下面我们来构建一个有三个属性,五个样本的数据框。

city <- c('beijing','shnaghai','guangzhou','shengzhen','hangzhou')

age <- c(23,11,34,42,67)

gender <- c('F','M','F','F','M')

people <- data.frame(city,age,gender)

print(people)

和数组操作一样,我们可以用方括号来提取数据框中的元素,另一种方法是用‘$’符号来提取某一列,例如提取age变量和gender变量。

people[1,1]

people[1,2:3]

people[1,]

people[2,-2]

people[2,-(2:3)]

people[2,c(1,3)]

people[2,-c(1,3)]

people$age

people$gender

people$age>30

people$city[people$age>30]

(4)列表

列表(List)是最为灵活的数据结构,它的不同元素可以是不同类型,也可以是不同的长度,还是用age、city、gender三个向量来构建列表。

peoplelist <- list(age=age,city=city,gender=gender)

print(peoplelist)

people.list$array <- a

people.list$dataframe <- people

(5)对象和类

有一个非常有用的函数“str()”能用以了解一个对象底细。

str(people)

(6)模型与公式

对统计学家来讲,模型是用以描述数据的简洁方式,很多时候模型以公式的形式展现,用以预测或解释。

y~x1+x2+...+xn

下面我们用一个具体的线性回归例子来看一下,使用的数据集是R内置的数据car。R语言中用于回归的函数是“lm”,回归后的结果存入变量“model”中。

model <- lm(formula=dist ~ speed,data=cars)

'summary'函数提供了关于回归结果更为丰富的信息,包括了各系数及其对应的P值,残差标准差和决定系数等。

summary(model)

(7)基本对象:向量

—单个数值(标量)是向量的一种特例

—向量的元素必须属于某种模式(mode),可以整型(integer)、数值型(numeric)、字符型(character)、逻辑型(logical)、复数型(complex)

—循环补齐(recycle):在一定情况下自动延长向量

—筛选:提取向量子集

—向量化:对向量的每一个元素应用函数

—使用seq()创建向量

—使用rep()重复向量常数

vector1 <- seq(2,10,2)

vector1 <- 1:10+2

vector2 <- 1:(10+2)

(8)算术运算小结

+ - * / ^

%%模运算

%/%整除除法

(9)逻辑运算小结

==      <=      >=      &     |     !     T    F  

area = pi*r^2
area <- function(r) {
	a = pi*r^2
	return(a) 
}








你可能感兴趣的:(R语言)