目标 : 如何存储、检索和修改计算机内存中的数据
设计一个扑克牌模拟系统,能够自动洗牌和发牌,系统可以记住发牌的结果,
四个任务 :
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命令展示每个对象的结构