R语言 数据结构

来源:互联网 发布:全面战争模拟器mac 编辑:程序博客网 时间:2024/06/06 01:34

R语言 数据结构

分析过程:

探索性数据分析—统计推断–数据分析–报告展示

探索性数据分析: 数据可视化

统计推断:结论+结论是错误的概率(<=5%)

回归分析:拟合数据-预测数据

机器学习:训练模型+预测

开发数据产品——GoogleVis API(R制作交互式html)、Manipulate、rCharts(交互式javascrip)、Shiny(嵌入网页的交互式R程序的平台)/Slidify(基于R的报告ppt)

包的安装与加载

install.packages("caret")# 机器学习包library(caret)> data()#自带的数据集> ?InsectSprays #数据集介绍

R数据结构

字符character、数值numeric、整数integer、复数complex、逻辑logical

属性:名称 维度 类型 长度

向量

只能包含 同一个类型 的对象

x <- vector('character', length = 10)x1 <- 1:4x2 <- c(1,2,3,4)x3 <- c(TRUE, 10, "a")as.numreic()强制转换为数值型as.logical()强制转换为逻辑型as.character(x1)强制转换为字符型

矩阵

Matrix:矩阵

向量+维度属性(整数向量:nrow, ncol)

创建矩阵 :

 x <- matrix(nrow = 3, ncol = 2) x <- matrix(1:6,nrow = 3, ncol = 2) dim(x) attributes(x) y <- 1:6 dim(y) <- c(3,2) y2 <-  matrix(1:6, nrow = 3, ncol = 2)cbind(y,y2) rbind(y,y2)> cbind(y,y2)     [,1] [,2] [,3] [,4][1,]    1    4    1    4[2,]    2    5    2    5[3,]    3    6    3    6> rbind(y,y2)     [,1] [,2][1,]    1    4[2,]    2    5[3,]    3    6[4,]    1    4[5,]    2    5[6,]    3    6

数组

与矩阵类似,但是维度可以大于2

x <- array(1:24, dim = c(4,6))x <- array(1:24, dim = c(2,3,4)) , , 1     [,1] [,2] [,3][1,]    1    3    5[2,]    2    4    6, , 2     [,1] [,2] [,3][1,]    7    9   11[2,]    8   10   12, , 3     [,1] [,2] [,3][1,]   13   15   17[2,]   14   16   18, , 4     [,1] [,2] [,3][1,]   19   21   23[2,]   20   22   24

list 列表

可以包含不同类型的对象

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> l3[[1]][1] 1 2 3[[2]][1] 4 5 6 7x <- matrix(1:6, nrow = 2, ncol = 3)           [,1] [,2] [,3][1,]    1    3    5[2,]    2    4    6dimnames(x) <- list(c("a","b"), c("c","d", "e" ))  #重命名  c d ea 1 3 5b 2 4 6

因子factor

因子factor:用来处理分类数据的,-整数向量+标签(优于整数向量)

不能比较大小——无序
可以比较——有序

x <- factor(c("female", "female", "male", "male"), levels = c( "male", "female"))人为设定因子水平,前者为基线水平查看因子:table(因子名字)去掉标签:unclass(因子名字)

缺失值

数据结构——缺失值
-NA/NaN:NaN属于NA,NA不属于NaN
-NA有类型属性:integer NA,character NA等
-is.na()/is.nan()

> x <- c(1,NA,2,NA,3)> X> x[1]  1 NA  2 NA  3> is.na(x)[1] FALSE  TRUE FALSE  TRUE FALSE> is.nan(x)[1] FALSE FALSE FALSE FALSE FALSE> x <- c(1,NAN,2,NAN,3)Error: object 'NAN' not found> x <- c(1,NaN,2,NaN,3)> is.na(x)[1] FALSE  TRUE FALSE  TRUE FALSE> is.nan(x)[1] FALSE  TRUE FALSE  TRUE FALSE

数据框

-存储表格数据
-视为各元素长度相同的列表
元素类型可以不同

> df <- data.frame(id=c(1,2,3,4),names=c("a","b","c","d"),gender=c(TRUE,TRUE,FALSE,FALSE))|每个元素代表一列数据|每个元素的长度代表行数> df  id names gender1  1     a   TRUE2  2     b   TRUE3  3     c  FALSE4  4     d  FALSE> nrow(df)[1] 4> ncol(df)[1] 3> data.matrix(df)     id names gender[1,]  1     1      1[2,]  2     2      1[3,]  3     3      0[4,]  4     4      0

日期和时间

Date / time

-日期:Date,是距离19700101的天数获取当前系统的时间:date() #是字符型获得日期类型的数据:Sys.Date() #是Date类型将字符串转变为Date类型:as.Date("yyyy-mm-dd")获取星期:weekdays(Date类型变量名字)获取月份:months(Date类型变量名字)获取季度:quarters(Date类型变量名字)获取距离1970-01-01的天数:julian(Date类型变量名字)Date类型之间可以进行运算,相减就是相差的天数,通过as.numeric()来转变为数值类型-时间:POSIXct/POSIXlt,是距离19700101的秒数POSIXct:整数,常用于存入数据框POSIXlt:列表,还包含星期、年、月、日等信息获取当前系统时间:Sys.time() #是POSIXct类型通过names(unclass(POSIXlt类型变量名))获取存储的信息。通过"POSIXlt类型变量名$信息"获得,比如p$sec时间的模式存储strptime通过as.来进行变量类型转换

20170902150434176919665.png

原创粉丝点击