#脚本与ppt对应
#运行脚本:光标放在某一行,点”run”,快捷键ctrl+enter(mac:command+enter)
#向量的生成,对单个/两个向量进行的操作,取子集,元素修改。
#####2.1.向量生成🌟#####
#(1)用 c() 结合到一起 #将五个数据(可以是数值型也可以是字符串型)合在一起
c(2,5,6,2,9)
c("a","f","md","b")
c(d,m)
#(2)连续的数字用冒号“:”
1:5 #1到5
1:100
8:1
#(3)有重复的用rep(),有规律的序列用seq(),随机数用rnorm
rep("gene",times=3) #被一个逗号分成了两半
seq(from=3,to=21,by=3) #被两个逗号分成
rnorm(n=3)
#(4)通过组合,产生更为复杂的向量。
paste0(rep("gene",times=3),1:3) #重复gene三次,从1到3
#paste0 将“gene”和“1”连接在了一起
#练习题
# 练习2-2: 向量生成
# 1.将两种不同类型的数据用c()组合在一起,看输出结果
c(2,5,6,2,9,"f","md","b")
# 2.生成1到30之间所有4的倍数,答案是
#4,8,12,16,20,24,28
seq(from=4,to=30,by=4)
# 3.生成sample4,sample8,sample12…sample28
# 提示:paste0
paste0(rep("sample",times=7),seq(from=4,to=30,by=4))
paste0(rep("sample",times=9),seq(from=4,to=30,by=4))
paste0(rep("sample",times=10),seq(from=4,to=30,by=4))
paste0(rep("sample"),seq(from=4,to=30,by=4))
#####2.2对单个向量进行的操作####
#(1)赋值给一个变量名
x = c(1,3,5,1) #随意的写法 =和
x
x <- c(1,3,5,1) #规范的赋值符号Alt+减号
x
#赋值+输出同步运行
x <- c(1,3,5,1);x #右边是赋值的具体内容
(x <- c(1,3,5,1)) ##赋值和输出一起执行
#元素就是向量的下一级数据
#(2)简单数学计算
x+1
log(x)
sqrt(x)
#(3)根据某条件进行判断,生成逻辑型向量
x>3
x==3
#(4)初级统计 #对单个向量进行操作
max(x) #最大值
min(x) #最小值
mean(x) #均值
median(x) #中位数
var(x) #方差
sd(x) #标准差
sum(x) #总和
length(x) #长度 #向量的长度,就是向量的元素个数
#回忆刚刚的
paste0(rep("sample",length(seq(from=4,to=30,by=4))),seq(from=4,to=30,by=4))
unique(x) #去重复
duplicated(x) #对应元素是否重复
#没有重复出现的就FLASE】
!duplicated(x)
##没有重复出现的就TRUE
table(x) #重复值统计
sort(x) #从小到大的排序
sort(x,decreasing = T ) #实现从大到小的排序
#####2.3.对两个向量进行的操作#####
x = c(1,3,5,1)
y = c(3,2,5,6,0,9)
#(1)逻辑比较,生成等长的逻辑向量
x == y
x %in% y #x中的元素在y中吗 #前面的向量的每一个元素是否在后面
y == x
y %in% x
#存在的就是TRUE
#(2)数学计算
x + y
#(3)“连接“
paste(x,y,sep=":")
#与paste0不是同一个
#sep表示分隔符是:
#(4)交集、并集、差集
intersect(x,y) #交集
union(x,y)
setdiff(x,y) #x里面有y没有的
setdiff(y,x) #y里面有x里面没有的
#当两个向量长度不一致
x = c(1,3,5,6,2)
y = c(3,2,5,7,6,6,6,6)
x == y # 啊!warning!
#两个长度不一致的向量进行循环的时候短的向量会自动补齐长的向量
#循环补齐--看ppt
#利用循环补齐简化代码
paste0(rep("gene",3),1:3)
paste0("gene",1:3) #类似于将“gene”看做长度为1的向量
#####2.4.向量筛选(取子集)--看ppt#####
x <- 8:12
#根据逻辑值取子集
x[x==10] #将判断为TRUE的结果挑选出来
x[x<12]
x[x %in% c(9,13)]
#根据位置取子集
#R语言的下标从1开始
x[4]
x[2:4]
x[c(1,5)] #取第一位和第五位
x[(1:5)] #从第一位到第五位
x[1,5]
x[-4]
x[-(2:4)]
####2.5.修改向量中的某个/某些元素:取子集+赋值
x[4] <- 40
x
x[x>10] <- 10
x #将>10的都改成10
#### 2.6 简单向量作图
k1 = rnorm(12)
k2 = rep(c("a","b","c","d"),each = 3)
plot(k1)
boxplot(k1~k2)
## 一、介绍
盒图是在1977年由美国的统计学家约翰·图基(John Tukey)发明的。它由五个数值点组成:最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(max)。也可以往盒图里面加入平均值(mean)。如上图。下四分位数、中位数、上四分位数组成一个“带有隔间的盒子”。上四分位数到最大值之间建立一条延伸线,这个延伸线成为“胡须(whisker)”。
由于现实数据中总是存在各式各样地“脏数据”,也成为“离群点”,于是为了不因这些少数的离群数据导致整体特征的偏移,将这些离群点单独汇出,而盒图中的胡须的两级修改成最小观测值与最大观测值。这里有个经验,就是最大(最小)观测值设置为与四分位数值间距离为1.5个IQR(中间四分位数极差)。即IQR = Q3-Q1,即上四分位数与下四分位数之间的差,也就是盒子的长度。
最小观测值为min = Q1 - 1.5*IQR,如果存在离群点小于最小观测值,则胡须下限为最小观测值,离群点单独以点汇出。如果没有比最小观测值小的数,则胡须下限为最小值。
最大观测值为max = Q3 +1.5*IQR,如果存在离群点大于最大观测值,则胡须上限为最大观测值,离群点单独以点汇出。如果没有比最大观测值大的数,则胡须上限为最大值。
![image](https://img.haomeiwen.com/i25072282/0e45b012800afd75?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![image](https://img.haomeiwen.com/i25072282/ad5a22f8e7d6504a?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
通过盒图,在分析数据的时候,盒图能够有效地帮助我们识别数据的特征:直观地识别数据集中的异常值(查看离群点)。判断数据集的数据离散程度和偏向(观察盒子的长度,上下隔间的形状,以及胡须的长度)。
1.箱体的左侧(下)边界代表第一四分位(Q1),而右侧(上)边界代表第三四分位(Q3)。至于箱体部分代表四分位距(IQR),也就是观测值的中间50%值。
2.在箱体中间的线代表的是数据的中位数值。
3.从箱体边缘延伸出去的直线称为触须(whisker).触须(whisker)的向外延伸表示了数据集中的最大和最小(异常点除外)。
4.极端值或异常点(outlier),用星号(*)来标识.如果一个值位于箱体外面(大于Q3或小于Q1),并且距离相应边界大于1.5倍的IQR,那么这个点就被认为是一个异常点(outlier)。
## 二、使用
matlab中:
1、随机数列
X = randn(100,25); %随机产生100*25 double数据
subplot(2,1,1);
boxplot(X)
subplot(2,1,2);
boxplot(X,'plotstyle','compact')
结果如下:
![image](https://img.haomeiwen.com/i25072282/40f37ff3bc1f0f20?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2、m*n已知数据:
x=[0.7582 0.9809 0.9089 0.9841
0.9529 0.9365 0.8307 0.8270
0.9254 0.7601 0.9708 0.8859
0.8475 0.9449 0.9100 0.9198
0.8599 0.9539 0.7721 0.7754]
subplot(2,1,1);
boxplot(x)
subplot(2,1,2);
boxplot(x,'plotstyle','compact')
结果:
[图片上传中...(image-d91e7f-1605625695503-0)]
一列是一组。
boxplot
一、介绍
盒图是在1977年由美国的统计学家约翰·图基(John Tukey)发明的。它由五个数值点组成:最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(max)。也可以往盒图里面加入平均值(mean)。如上图。下四分位数、中位数、上四分位数组成一个“带有隔间的盒子”。上四分位数到最大值之间建立一条延伸线,这个延伸线成为“胡须(whisker)”。
由于现实数据中总是存在各式各样地“脏数据”,也成为“离群点”,于是为了不因这些少数的离群数据导致整体特征的偏移,将这些离群点单独汇出,而盒图中的胡须的两级修改成最小观测值与最大观测值。这里有个经验,就是最大(最小)观测值设置为与四分位数值间距离为1.5个IQR(中间四分位数极差)。即IQR = Q3-Q1,即上四分位数与下四分位数之间的差,也就是盒子的长度。
最小观测值为min = Q1 - 1.5*IQR,如果存在离群点小于最小观测值,则胡须下限为最小观测值,离群点单独以点汇出。如果没有比最小观测值小的数,则胡须下限为最小值。
最大观测值为max = Q3 +1.5*IQR,如果存在离群点大于最大观测值,则胡须上限为最大观测值,离群点单独以点汇出。如果没有比最大观测值大的数,则胡须上限为最大值。
通过盒图,在分析数据的时候,盒图能够有效地帮助我们识别数据的特征:直观地识别数据集中的异常值(查看离群点)。判断数据集的数据离散程度和偏向(观察盒子的长度,上下隔间的形状,以及胡须的长度)。
1.箱体的左侧(下)边界代表第一四分位(Q1),而右侧(上)边界代表第三四分位(Q3)。至于箱体部分代表四分位距(IQR),也就是观测值的中间50%值。
2.在箱体中间的线代表的是数据的中位数值。
3.从箱体边缘延伸出去的直线称为触须(whisker).触须(whisker)的向外延伸表示了数据集中的最大和最小(异常点除外)。
4.极端值或异常点(outlier),用星号(*)来标识.如果一个值位于箱体外面(大于Q3或小于Q1),并且距离相应边界大于1.5倍的IQR,那么这个点就被认为是一个异常点(outlier)。
二、使用
matlab中:
1、随机数列
X = randn(100,25); %随机产生100*25 double数据
subplot(2,1,1);
boxplot(X)
subplot(2,1,2);
boxplot(X,'plotstyle','compact')
结果如下:
2、m*n已知数据:
x=[0.7582 0.9809 0.9089 0.9841
0.9529 0.9365 0.8307 0.8270
0.9254 0.7601 0.9708 0.8859
0.8475 0.9449 0.9100 0.9198
0.8599 0.9539 0.7721 0.7754]
subplot(2,1,1);
boxplot(x)
subplot(2,1,2);
boxplot(x,'plotstyle','compact')
结果:
一列是一组。
![](https://img.haomeiwen.com/i25072282/99965113c43935ac.png)
网友评论