R 语言学习总结

caret
R 开发数据产品

GtoogleVis API

  • R 制作html,调用Google chatrs
  • 交互式html 图表

Manipulate

rchart

shiny

Slidity

  • 制作和发布基于R的报告。
    安装R 网站:cran.r-project.org
    Rstudio:IDE

R语言的5种对象的基本类型有:

字符(character)
数值(numeric:real number)
整数(integer)
复数(complex):1+2i
逻辑(logical:true/false)

数据属性

。名称 (name)
。维度 (dimension:matrix array)
。类型 (class)
。长度 (length)

vector向量:支持自动扩容的数组

3.y <- vector(“character”,10) — 初始化长度为10的字符串数组
4.x <- 1:4 — x为1到4,含4个元素的数组
5.x2 <- c(1, 2, 3, 4) — 用列表方式初始化数组
6.x3 <- c(TRUE, 10, “a”) — 数组元素将被强制转换为同一类型
7.x4 <- c(“a”, “b”, “c”)
as.numeric(x4)
as.logical(x4)
as.character(x4) — 几种常用的强制转换方式(可能报错)
8.names(x1) <- c(“a”, “b”, “c”, “d”) — 为x1数组每个角标添加引用
三种方法创建向量:
x<- vector(“character”,length =10)
x1<- 1:4
x2<-c(1,2,3,4)
如果用第三种方法去创建 向量时,传入三种不同类型的值,R会自动强制转换成 可用 类型:
x3<-c(TRUE,10,”a”)

矩阵

–向量+维度属性(整数向量:nrow,ncol)
创建空白矩阵 x<-matrix(nrow=行数,ncol=列数)
创建矩阵 x<-matrix(内容,nrow=行数,ncol=列数)
查看矩阵行列数 dim(x)
查看矩阵有哪些属性 attributes(x)
cbind()为按照列来拼接 rbind()是按照行来拼接 dim()是维度

列表(list):

1.列表与向量的差别:列表可以同时包含不同类型的对象
2.
l <- list(“a”, 2, 10L, 3+4i, TRUE)#建立列表
l2 <- list(a=1 ,b=2 ,c=3)#为列表元素命名
l3 <- list(c(1,2,3),c(4,5,6,7))#列表元素可以是向量,创建元素个数大于1
给矩阵的每行每列取名用dimnames(),eg:dimnames(c(“a”,”b”),c(“c”,”d”,”e”))

缺失值(missing value)

-NA/NaN:NaN属于NA,NA不属于NaN(一般表示数字缺失值)
-NA有类型属性:integer NA,character NA等
-is.na()/is.nan()

data fram数据框:

同一列数据类型相同,且每一列长度相等
2.df<-data.frame(id=c(1,2,3),name=c("a","b","c"),gender=c("TRUE","TRUE","FALSE")
3.nrow(df)#查看数据框行数
ncol(df)#查看数据框列数
4.data.matrix(df2)#数据转矩阵

日期与时间:

-日期:Date,是距离19700101的天数
获取当前系统的时间:date() #是字符型
获得日期类型的数据:Sys.Date() #是Date类型
将字符串转变为Date类型:as.Date(“yyyy-mm-dd”)

预处理数据

[]提取一个或多个类型相同元素
[[]]从列表或数据框中提取元素
:按名字从列表或数据框中提取元素
x <- data.frame(v1=1:5,v2=6:10,v3=11:15)
给v3中的第二、四数据赋值: x v 3 [ c ( 2 , 4 ) ] < N A w h i c h w h i c h x v1>2)
subset(母集,构建子集的条件)

缺失值

x <- c(1,NA,2,NA,3)
x[!is.na(x)] #获取不为缺失值的元素
y <- c(“a”,”b”,NA,”C”,NA)
z <- complete.cases(x,y)
x[z]
y[z]

library(datasets)
head(airqualit)
g<-complete.cases(airquality)
airquality[g,][1:10,]

R语言重要函数

处理循环:lapply
–可以循环处理列表中的每一个元素
–lappy(参数):lappy(列表,函数/函数名,其他参数)
–总是返回一个列表
x<-list(a=1:10,b=c(11,21,31,41,51))
lapply(x, mean)#平均值
sapply:简化结果

–数组的每一维度处理数据
–apply(参数):apply(数组,维度,函数/函数名)
x<- matrix(1:16,4,4)
apply(x, 2, mean)#列求平均
apply(x,2,sum)#列求和

rowSums(x)<br>
rowMeans(x)<br>
ColSums(x)<br>
ColMeans(x)
rnorm(100,10,10)从正态分布里随机抽取100个数,排成方阵

mapply - lapply的多元版本
- mapply(函数名,数据,函数相关参数)
- mapply(rep,1:4,4:1) -> 1-4组,每组重复多少次
- s <- function(n,mean,std){
rnorm(n,mean,std)
}

tapply:

对向量子集进行操作。根据因子列表,每个水平下的元素个数来对向量进行划分(比如有三个水平,每个水平有4个数,就是将向量分成3组,每组4个数),对每组运行函数。
tapply(向量,因子/因子列表,函数/函数名)
rnorm(5) #正态分布中取5个数
runif(5) #均匀分布中取5个数
rnorm(5,1) #均值为1标准差为0的正态分布
x <- c(rnorm(5),runif(5),rnorm(5,1))
f <- gl(3,5) #建立一个因子 表示这个因子有3个水平,每个水平下有5个元素。
tapply(x,f,mean)
tapply(x,f,mean, simplify = F)

split

根据因子或者因子列表将向量或其他对象分组
通常与lapply一起使用
参数格式:split(向量/列表/数据框,因子/因子列表)

排序:

sort返回排好序的内容
order返回下标
x <- data.frame(v1=1:5, v2=c(10,7,9,6,8), v3=11:15, v4=c(1,1,2,2,1))
sort(x v 2 ) s o r t ( x v2,decreasing = TRUE)

总结数据信息:

head(airquality, 10)#查看前10行
tail(airquality, 10)#查看后10行
summary(airquality)#总结,数据分布整体把握
str(airquality)#以简洁方式对数据总结

在table函数后面加上useNA表示还要统计NA的数量
any(is.na(airquality Ozone))#判断是否有缺失值,true是有缺失值  sum(is.na(airquality Ozone))#统计缺失值数量
all(airquality$Month < 12)#查看是不是所有的月份都小于12
频率交叉表xtabs

扁平表 ftable
object.size 数据大小查询

一个分类变量的可视化:频率表、条形图

两个分类变量:关联表、相对频率表;分段条形图、相对频率分段条形图、马赛克图(mosaicplot)

一个分类变量、一个数值变量:并排箱图(side-by-side box plot)

猜你喜欢

转载自blog.csdn.net/wuhuimin521/article/details/80786664