卫明真

2020-08-30   阅读量: 1734

R语言数据框(data frame)的建立

扫码加入数据分析学习群

统计分析中一个完整的数据集通常是由若干个变量的若干个观测值组成的, 在R中称为数据框. 数据框是一个对像, 它与前面讲的矩阵与二维数组形式上是类似的, 也是二维的,也有维数这个属性, 且各个变量的观测值有相同的长度. 但不同的是: 在数据框中, 行与列的意义是不同的, 其中的列表示变量,而行表示观测. 显示数据框时左侧会显示观测值的序号.

数据框的建立分为直接的与简接的两种方法:

数据框的直接建立

若你在R中建立了一些向量并试图想由它们生成数据框,则可以使用函数data.frame( ). 例如

> x=c(42,7,64,9)

> y=1:4

> z.df=data.frame(INDEX = y, VALUE = x)

INDEX VALUE

1 1 42

2 2 7

3 3 64

4 4 9

数据框中的向量必须有相同的长度或长度有倍数关系,如果其中有一个比其它的短,它将按循环法则“循环”整数次. 例如

> weight <- c(70.6, 56.4, 80, 59.5)

> x <- (c("adult", "teen", "adult", "teen"))

> wag <- data.frame(weight, age = x)

> wag

weight age

1 70.6 adult

2 56.4 teen

3 80.0 adult

4 59.5 teen

> x <- 1:4; y <- 2:4

> data.frame(x, y)

错误于data.frame(x, y) : 变元值意味着不同的行数 4, 3

数据框的简接建立

一个数据框还可以通过数据文件(文本文件、EXCEL文件或其它统计软件的数据文件)读取并建立, 在此我们仅通过一个例子来说明如何通过函数read.table( ) 读取文件c:\data\foo.txt中的观测值, 并建立一个数据框.其它简接方法可参考下一节“数据的存贮与读取”的介绍. 已知存于foo.txt上的数据如下:

treat weight

A 3.4

B NA

A 5.8

则下面的命令建立了数据框foo.

> foo <- read.table(file = "c:/data/foo.txt", header = T)

> foo

treat weight

1 A 3.4

2 B NA

3 A 5.8

适用于数据框的函数

在上一小节中我们所讨论的关于矩阵的统计计算函数max( ), min( ),median( ), var( ), sd( ), sum( ), cumsum( ), cumprod( ), cummax( ),cummin( ), cov( ), cor( )同样适用于数据框, 意义也相同. 这里通过R内嵌的另一个数据集Puromycin来说明summary( )、pairs( )和xtable( )等的使用.

> attach(Puromycin) # 挂接数据集使之激活

> help(Puromycin) # 显示前几行

> summary(Puromycin) # 显示主要的描述性统计量

conc rate state

Min. :0.0200 Min. : 47.0 treated :12

1st Qu.:0.0600 1st Qu.: 91.5 untreated:11

Median :0.1100 Median :124.0

Mean :0.3122 Mean :126.8

3rd Qu.:0.5600 3rd Qu.:158.5

Max. :1.1000 Max. :207.0

从summary可以看出, 变量conc和rate是数值型的, 而state为因子变量. 变量之间的关系可以通过成对数据散点图考查:

> pairs(Puromycin, panel = panel.smooth)

最后使用xtabs( )函数由交叉分类因子产生一个列联表:

> xtabs(~state + conc, data = Puromycin)

conc

state 0.02 0.06 0.11 0.22 0.56 1

treated 2 2 2 2 2 2

untreated 2 2 2 2 2 1

下期请期待数据框的下标与子集的提取













添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
44.6814 5 0 关注作者 收藏

评论(0)


暂无数据

推荐课程