R语言 数据结构

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:4
x2 <- 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 7


x <- matrix(1:6, nrow = 2, ncol = 3)    
       [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
dimnames(x) <- list(c("a","b"), c("c","d", "e" ))  #重命名

  c d e
a 1 3 5
b 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 gender
1  1     a   TRUE
2  2     b   TRUE
3  3     c  FALSE
4  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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值