《R语言入门与实践》学习笔记二(chapter4~6)

目标 : 如何存储、检索和修改计算机内存中的数据
设计一个扑克牌模拟系统,能够自动洗牌和发牌,系统可以记住发牌的结果,
 
四个任务 :
1 创建一副牌
2   发牌和洗牌函数
3 改变点数系统适应不同的扑克游戏
4 管理扑克牌桌的状态
 
 
创建一副扑克牌
 
第三章: R对象
1、 六种原子型向量:double ,integer,chatacter,logical,complex(复数),raw(原始类型)
2 、 名称属性 class name dim
 
name 属性
 

 

dim属性
 

 

改变维度会改变对象的class属性
 
3 因子 factor(),存储分类信息,会有一个levels 和 class属性被添加
gender = factor(c("male","female","male","male"))
 
 
4 R 中的强制类型转换
首先,R会将所有原子型字符串都转化为字符创类型
 

 

as函数
as.character(1)
as.logical(1)
as.numeric("11")
........
 
5 List 列表
        向量,矩阵,数组都只能存贮单一类型的数据,不过在数据操作时候更加地直接和高效、
        List将数据组织在一维集合中,组织的是R对象
 
 
6 数据框  data frame
是列表的二维版本 ,  可以和Excel做对比,在结构上相似
 
每列的长度需要相同
 
 
7 导入数据
tail(),head() 查看大数据的部分信息
 

 

保存数据 

write.csv(deck,file = "card.csv",row.names = FALSE )
 
 
 
 发牌和洗牌函数
 
第4章 R的记号体系
 
4.1 值的选取
deck[  ,  ]   数据框[   ,   ]
 
六种,索引便写方式
正整数,负整数,零,空格,逻辑值,名称
 
(1)0正整数
 

 

(2)负整数  
不包含
 

 

(3)零索引
并没有什么用处
 
(4)空格索引
提取维度的所有元素
 
(5)逻辑值索引
 

 

(6)名称索引
 

 

4.2 发牌函数
可以发最顶上的一张牌,但是有问题,K永远在最上面
 

 

4.3洗牌
思路,随机取出原来的一副牌
random = sample(1:52,size = 52)
deck4 = deck[random,   ]
即可完成
 

 

洗牌函数 shuffle(cards)
 

 

 
4.4 美元符号 和 双中括号
第二种记号体系  $ 符号    提取数据框和列表对象的值
deck$value
 
$会原封不动地提取元素
 
 
双中括号 , 返回的是列表中的元素值
 

 

 
改变点数系统适应不同的扑克游戏
 
第五章 对象改值 
5.1 对象改值
 

 

为数据集添加新变量
 

 

5.2 逻辑值取子集
如何确定洗牌之后某张牌的具体位置
 
(1)R的七种逻辑符号
a > b ,  a>=b  , a<b,a<=v,a==b,a!=b
a%in%c(a,b,c)  c(a,b,c)中是否包含a
 

 

 
将所有红桃牌的值全部改为0
 

 

(2)布尔运算值
&   |   xor(只有一个为真) !(是否为假)  
any(至少一个为真)    all(全部为真)
 

 

5.3  缺失信息
因为某个测量值发生丢失或者被破坏或者测量根本就没有发生
NA表示不可用
 

 

NA 会原封不动地保留和传送,可以有效避免很多和缺失信息有关的错误
 
na.rm  = TRUE  添加后,在对函数求值是会忽略NA
 

 

is.na   用来测试某个数据集中是否存在NA
 

 

 
 
第六章 R的系统环境
(1)parvens 可以查看系统环境
(2)as.enviroment 可以指向环境树的任意一个环境
(3)三个环境拥有自己的调用函数  全局环境,基环境,空环境
 

 

 
(4) parent.env()查看父环境  emptyenv()没有父环境
(5) ls()或者ls.str()  查看环境中的对象, ls只返回对象名称,ls.str命令展示每个对象的结构
 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2018-01-05 11:19  doctorW  阅读(1102)  评论(0编辑  收藏  举报