《机器学习与R语言》读书笔记3:数据的管理和理解

任何机器学习项目初期的核心部分都是与管理和理解所收集的数据有关的
R数据结构:向量、因子、列表、数组和数据框

向量(R的基本数据结构):
(一个向量可以包含任意数量的元素,所有元素必须是一样的类型)
向量存储一组有序的值,称为 元素
向量类型:
integer(整型)、numeric(数值型)、character(字符型)、logical(逻辑型)、NULL(没有任何值)、NA(缺失值)
> name <- c("a","b","c")
> value <- c(100,200,300)
> name[1]
[1] "a"
> name[3]
[1] "c"
> name[2,3]
Error in name[2, 3] : 量度数目不对
> name[2:3]
[1] "b" "c"
> name[-2]
[1] "a" "c"
> name[c(TRUE,FALSE,TRUE)]
[1] "a" "c"

因子:(向量的一个特例)
> gender <- factor(c("MALE","FEMALE","MALE"))
> gender
[1] MALE   FEMALE MALE  
Levels: FEMALE MALE

列表:(一种特殊类型的向量)(允许收集不同类型的值)
> bbz <- list(name=c("ahaha"),age=c("22"),time=c("2015"))
> bbz
$name
[1] "ahaha"
$age
[1] "22"
$time
[1] "2015"
> bbz[2]
$age
[1] "22"
> bbz$age
[1] "22"

数据框:(最重要的R数据结构)(与电子表格或数据库类似)
(数据框定义为一个向量列表或者因子列表,每一列都有相同数量的值)
> pt_data <- data.frame(name,value,gender,bbz,stringAsFactors=FALSE)
> pt_data
  name value gender name.1 age time stringAsFactors
1    a   100   MALE  ahaha  22 2015           FALSE
2    b   200 FEMALE  ahaha  22 2015           FALSE
3    c   300   MALE  ahaha  22 2015           FALSE
> pt_data$name
[1] a b c
Levels: a b c
> pt_data[c("name","value")]
  name value
1    a   100
2    b   200
3    c   300
> pt_data[1:2]
  name value
1    a   100
2    b   200
3    c   300
> pt_data[1,2]
[1] 100
> pt_data[c(1,2),c(2,3)]
  value gender
1   100   MALE
2   200 FEMALE
> pt_data[,2]
[1] 100 200 300
> pt_data[1,]
  name value gender name.1 age time stringAsFactors
1    a   100   MALE  ahaha  22 2015           FALSE
> pt_data[,]
  name value gender name.1 age time stringAsFactors
1    a   100   MALE  ahaha  22 2015           FALSE
2    b   200 FEMALE  ahaha  22 2015           FALSE
3    c   300   MALE  ahaha  22 2015           FALSE

矩阵和数组:(存储表格形式数据的专用数据结构)(表示行和列数据的两维表格数据结构)
矩阵是用来做数学运算的,通常存储数值型数据)
> m <- matrix(c('a','b','c','d'),nrow=2)
> m
     [,1] [,2]
[1,] "a"  "c" 
[2,] "b"  "d" 
> m <- matrix(c('a','b','c','d'),ncol=2)
> m
     [,1] [,2]
[1,] "a"  "c" 
[2,] "b"  "d" 
> m <- matrix(c('a','b','c','d','e','f'),nrow=2)
> m
     [,1] [,2] [,3]
[1,] "a"  "c"  "e" 
[2,] "b"  "d"  "f" 
> m <- matrix(c('a','b','c','d','e','f'),ncol=2)
> m
     [,1] [,2]
[1,] "a"  "d" 
[2,] "b"  "e" 
[3,] "c"  "f" 
> m[1,]
[1] "a" "d"
> m[,1]
[1] "a" "b" "c"

数组与矩阵结构非常接近,多维数据表) (矩阵含有行和列值,数组包含行、列以及任意多层的值)

用R管理数据:
1.保存和加载R数据结构
save()函数把R数据结构写到由file参数设定的位置。R数据文件有一个文件扩展名.RData
> save(name,value,gender,bbz,m,file="mydata.RData")
> load("mydata.RData")
> save.image()

2.用CSV文件导入和保存数据
3.从SQL数据库导入数据
安装并且加载RODBC添加包
install.packages("RODBC")
library(RODBC)
建立数据库连接(略)

你可能感兴趣的:(机器学习)