复杂数据统计方法——基于R的应用 R软件练习-part1

本书作者: 吴喜之


鉴于吴教授的建议,在阅读本书后续章节之前,我们先对附录中的R相关操作进行练习。

  • 操作系统:win10

  • R版本:R-3.3.3

这部分内容使用Rmarkdown进行记录。如果做练习,可以直接在R中运行每一个命令

强烈建议初学者自己去运行每一个命令,理解其中的具体含义。

实践1 —— 热身

x = 1:100 #将1-100赋值到x,但是不显示
(a = 1:100) #同样将1-100赋值到a,但是将直接显示a的结果

sample(x, 20) #从x中随机不放回地抽取20个值作为样本,将直接显示结果
set.seed(011); sample(1:10, 3) #先设定种子,再随机取值。注意,设定种子的目的是保证模拟结果的可重复性,011可认为是零一一号种子

z = sample(1:200000, 10000) #不放回地抽取10000个值作为样本
z[5:15] #提取z中5-15位的数值

y = c(5, 7, 12, 8, 5, 10)
z[y] #提取以y为下标的z的元素值

(z = sample(x, 100, rep=T)) #从x中有放回地随机抽取100个值作为样本
(z1 = unique(z)) #去重后将结果保存至z1
length(z1) #统计z1中的元素个数,即z中不同的元素个数

a = 1:10
b = 5:15
setdiff(a, b) #从a中去除与b重合的元素,即保留a特异的元素
setdiff(b, a) #从b中去除与a重合的元素(注意与上一个命令进行区分)

sort(union(a, b)) #将a与b的元素合并后排序,注意会去重
setequal(union(a, b), b) #判断a与b合并后的元素是否与b相同,注意会去重

intersect(1:10, 7:20) #取两个集合的交集

sample(1:100, 20, prob=1:100) #从1-100中不等概率地随机抽样,prob限定每个数值被抽到的概率,需与元素个数相同。[看出来了吧,电脑抽奖也可以造假]

实践2 —— 简单运算

pi * 10^2 #pi为圆周率
?“*” #联网查看基本算术运算方法
"*"(pi, "^"(10, 2)) #这是一种类似“密码”的写法,你可以了解一下,万一想写个暗语什么的可以考虑~
x = pi * 10 ^ 2
x
print (x)
(x = pi * 10 ^ 2) #赋值同时打印
pi ^ (1:5) #指数可以是向量,结果也将是向量
print(x, digits = 12) #输出x的12位数字

实践3 —— 关于R对象的类型

x = pi * 10 ^ 2
class(x)
mode(x)
typeof(x)

class(cars) #cars为R自带的数据
mode(cars)
typeof(cars)

#modes have the same set of names as types except that:
  #types "integer" and "double" are returned as "numeric"
  #types "special" and "builtin" are returned as "function"
  #types "symbol" is called mode "name"
  #types "language" is returned as "(" or "call"

#分类似乎是个很复杂的事情,有兴趣深入研究可以参考 

names(cars) #显示cars中的变量名
summary(cars) #对cars进行基本统计分析

cars[1:6, ] #显示前6行数据
head(cars) #显示头几行数据,默认为前6行,结果同上
tail(cars) #显示最后几行数据

str(cars) #换一种方式展示数据
row.names(cars) #显示数据的行名
attributes(cars) #显示数据基本信息

class(dist~speed) #类型为公式,左侧为因变量,右侧为自变量
plot(dist~speed, cars) #绘制两个变量的散点图
plot(cars$speed, cars$dist) #x轴数据在左,y轴数据在右,注意坐标轴的title与上图有一些区别

后续操作更为复杂,从易到难,咱们慢慢来。

你可能感兴趣的:(复杂数据统计方法——基于R的应用 R软件练习-part1)