踏上R语言之旅:解锁数据世界的神秘密码(二)

R语言学习



1.数据的R语言表示

数据框(data frame)
R语言中用函数data.frame()生成数据框,其句法是:
data.frame(data1,data2,…),例如:

> X=data.frame(x1,x2)
> X
    x1 x2
1  171 57
2  175 64
3  159 41
4  155 38
5  152 35
6  158 44
7  154 41
8  164 51
9  168 57
10 166 49
11 159 47
12 164 46

数据框的列名默认为变量名,也可以对列名进行重新命名,例如:

> (X=data.frame('身高'=x1,'体重'=x2) )
   身高 体重
1   171   57
2   175   64
3   159   41
4   155   38
5   152   35
6   158   44
7   154   41
8   164   51
9   168   57
10  166   49
11  159   47
12  164   46

2.多元数据的R语言调用

1.从剪切板读取
2.从文本文件读取
3.从Excel文件读取

>X=read.table("data.csv")

注意:若要读取Excel工作簿数据,需安装和调用RODBC包:

>library(RODBC)
>Rcode<-odbcConnectExcel("Rcode.xls")

3.多元数据的简单R语言分析

1.定量变量的分析
(1)展现定量数据

直方图hist()函数
hist(x,freq=NULL,…)

> hist(x1) #身高的直方图

在这里插入图片描述
(2).定量变量间的关系

散点图plot()函数
plot(x,y,…)

> plot(x1,x2)

在这里插入图片描述
2.定性变量的分析

列联表函数table()
(1)单因素分析

> data=read.table("clipboard",header=T) #剪切板数据读入data
> head(data) #前6组数据
   年龄 性别 风险意识 专兼职情况 职业状况 教育程度 投资结果
1 20-29   男       有       兼职     金融     高中     赚钱
2 50-59   女       有       兼职     科教     中学     持平
3 40-49   女       无       专职     科教     中学     赔钱
4 30-39   男       有       兼职     工人     中专     赚钱
5 50-59   女       有       专职     农民     大专     赚钱
6 40-49   女       有       兼职     管理     小学     赚钱
> attach(data) #解析变量
> table(年龄) #一维列联表
年龄
    *  0-19 20-29 30-39 40-49 50-59   60- 
   20     3    92   167   157    51    24 
> barplot(table(年龄),col=1:7)

在这里插入图片描述

> pie(table(投资结果))

在这里插入图片描述

(2)两因素分析

> table(年龄,性别)
       性别
年龄   男  女
  *       9  11
  0-19    2   1
  20-29  69  23
  30-39 101  66
  40-49  89  68
  50-59  24  27
  60-    15   9
> barplot(table(年龄,性别),beside=T,col=1:7)

在这里插入图片描述

> barplot(table(性别,年龄),beside=T,col=1:2)

在这里插入图片描述

(3)三因素分析

> ftable(年龄,性别,投资结果) #三维列联表
           投资结果 持平 赔钱 赚钱
年龄  性别                        
*4    3    23    7    1
0-190    0    21    0    0
20-2921   17   3110    7    6
30-3931   30   4030   20   16
40-4931   30   2825   30   13
50-595   11    88   10    9
60-7    5    32    5    2
> (ft=ftable(性别,投资结果,年龄))
              年龄  * 0-19 20-29 30-39 40-49 50-59 60-
性别 投资结果                                         
男   持平           4    0    21    31    31     5   7
     赔钱           3    0    17    30    30    11   5
     赚钱           2    2    31    40    28     8   3
女   持平           3    1    10    30    25     8   2
     赔钱           7    0     7    20    30    10   5
     赚钱           1    0     6    16    13     9   2
> rowSums(ft)
[1]  99  96 114  79  79  47
> colSums(ft)
[1]  20   3  92 167 157  51  24
> sum(ft)
[1] 514

整理后的频数表:
在这里插入图片描述

4.多元数据的直观表示及R使用

> X=read.table("clipboard",header=T,row.names=1)

注意:书中读取有点问题,没有排除第一列,非数值数据,否则后续无法成功运行

1.均值条图及R使用

barplot(X,...)
X为数值向量或数据框

按行做均值图

> barplot(apply(X,1,mean))

在这里插入图片描述
按列作均值图

> barplot(apply(X,2,mean))

在这里插入图片描述
去掉“食品”按列作的均值图

> barplot(apply(X[,2:8],2,mean))

在这里插入图片描述
按列作中位数图

> barplot(apply(X,2,median))

在这里插入图片描述
按列作均值图

> pie(apply(X,2,mean))

在这里插入图片描述

2.箱尾图及R使用

箱尾图可以比较清晰地表示数据的分布特征,它由四部分组成:
(1)箱子上下的横线为样本的25%和75%分位数,箱子顶部和底部的差值为四分位间距。
(2)箱子中间的横线为样本的中位数。若该横线没有在箱子的中央,则说明样本数据存在偏度。
(3)箱子向上或向下延伸的直线称为“尾线”,若没有异常值,样本的最大值为上尾线的顶部,样本的最小值为下尾线的底部。默认情况下,距箱子顶部或底部大于1.5倍四分位间距的值称为异常值。
(4)图中顶部的圆圈表示该处数据为异常值。该异常值可能是因输入错误、测量失误或系统误差引起的。对例3-1这31个省市八项指标作箱尾图。

boxplot(x,…)
x为数据框

> boxplot(X)

在这里插入图片描述
水平放置 horizontal=T

 > boxplot(X,horizontal=T)

在这里插入图片描述

3.星相图及R使用

星相图是雷达图的多元表示形式,它将每个变量的各个观察单位的数值表示为一个图形,n个观察单位就有n个图,每个图的每个角表示每个变量。

stars(x,full=TRUE,draw,segments=FALSE,…)
x为数值矩阵或数据框
full为图形形状:full=TRUE为圆形,full=FALSE为半圆
draw.segments为分支形状:draw.segments=T为圆形,draw.segments=F为半圆

> stars(X,full=T)

在这里插入图片描述

> stars(X,full=F)

在这里插入图片描述
上图是根据例3-1数据所作的星相图。共有31个地区,每个星相图的角表示一个变量。从图中可以看出,北京、上海、广东、浙江四个地区的消费情况较为突出,其他地区的消费状况则大致相同。

> stars(X,full=T,draw.segments=T)

在这里插入图片描述

> stars(X,full=F,draw.segments=T)

在这里插入图片描述

4.脸谱图及R使用

将每个指标用人的脸型的某一部位的形状或大小来表达,通过脸谱之间的差异,反映所对应样品之间的差异特性

faces(X,nrow,plot,ncol,plot,…)
X为数值矩阵,每列代表一个变量
nrow.plot为图形显示行数
ncol.plot为图形显示列数

要先下载包

> install.packages("aplpack")
>library(aplpack)
> faces(X,ncol.plot=7)
effect of variables:
 modified item       Var   
 "height of face   " "食品"
 "width of face    " "衣着"
 "structure of face" "设备"
 "height of mouth  " "医疗"
 "width of mouth   " "交通"
 "smiling          " "教育"
 "height of eyes   " "居住"
 "width of eyes    " "杂项"
 "height of hair   " "食品"
 "width of hair   "  "衣着"
 "style of hair   "  "设备"
 "height of nose  "  "医疗"
 "width of nose   "  "交通"
 "width of ear    "  "教育"
 "height of ear   "  "居住"

在这里插入图片描述

> faces(X[,2:8],ncol.plot=7)
effect of variables:
 modified item       Var   
 "height of face   " "衣着"
 "width of face    " "设备"
 "structure of face" "医疗"
 "height of mouth  " "交通"
 "width of mouth   " "教育"
 "smiling          " "居住"
 "height of eyes   " "杂项"
 "width of eyes    " "衣着"
 "height of hair   " "设备"
 "width of hair   "  "医疗"
 "style of hair   "  "交通"
 "height of nose  "  "教育"
 "width of nose   "  "居住"
 "width of ear    "  "杂项"
 "height of ear   "  "衣着"

在这里插入图片描述
三个发达地区和三个不发达地区比较

> faces(X[c(1,9,19,28,29,30),])
effect of variables:
 modified item       Var   
 "height of face   " "食品"
 "width of face    " "衣着"
 "structure of face" "设备"
 "height of mouth  " "医疗"
 "width of mouth   " "交通"
 "smiling          " "教育"
 "height of eyes   " "居住"
 "width of eyes    " "杂项"
 "height of hair   " "食品"
 "width of hair   "  "衣着"
 "style of hair   "  "设备"
 "height of nose  "  "医疗"
 "width of nose   "  "交通"
 "width of ear    "  "教育"
 "height of ear   "  "居住"

在这里插入图片描述
不得不说,这脸谱着实有点抽象,哈哈~


总结

本小节主要学的是一些关于R语言的数据及图像表达的操作,数据案例表已绑定,继续加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小伍_Five

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值