R语言实战_第2章_创建数据集
程序员文章站
2024-02-28 11:44:58
...
第2章 创建数据集
1. 数据基本概念
- 行/实例标识符
日期型变量
连续性变量
名义型变量
有序性变量 - 对象类型:标量、向量、矩阵、数组、数据框、列表。
- 标量:只含一个元素的向量
1. 向量
- 向量:
a <- c(1, 2, 5, 3, 6, -1, 4)
数值型向量b <- c('one', 'two', 'three')
字符型向量c <- c(TRUE, TRUE, FALSE, TRUE)
逻辑型向量
同一向量中无法混杂不同模式的数据 - R语言计数从1开始,Python计数从0开始
- 访问向量中指定元素:
a[2]
a[c(2,4)]
c[2:5]
2. 矩阵
- 相同模式元素构成的二维数组
- 通过
matrix()
创建矩阵
y <- matrix(1:20, nrow=5, ncol=4)
x <- matrix(cells, nrow=2, ncol=2, byrow=TRUE,
dimnames=list(rnames, cnames))
矩阵默认按列填充
- 访问矩阵中的指定元素:
y[2, ]
第2行所有元素y[ ,2]
第2列所有元素y[1, 4]
第1行第4位元素y[1, c(4,5)]
第1行第4、5位元素
3. 数组
- 数组与矩阵相似,由相同元素构成,维度可以大于2
- 数组由
array()
创建:myarray <- array(vector, dimensions, dimnames)
vector 包含数组中的数据
dimensions 给出各维度下标最大值
dimnames 可选的,各维度名称标签 - 示例
dim1 <- c("A1", "A2")
dim2 <- c("B1", "B2", "B3")
dim3 <- c("C1", "C2", "C3", "C4")
z <- array(1:24, c(2, 3, 4),
dimnames=list(dim1, dim2, dim3))
4. 数据框
- 不同列可以是不同模式(数值型、字符型等)的数据,各列的数据模式须保持一致
- 通过
data.frame()
创建 -
mydata <- data.frame(col1, col2, col3)
col 为列向量 - 选取数据框中元素:
mydata[1: 2]
mydata[c("col2", "col3")]
mydata$col3
-
table()
对两变量列联表 -
attach()
、detach()
和with()
:
attach(mydata)
summary(col1)
detach(mydata)
with(mydata, {
summary(col1)
})
将数据框添加入R的搜索路径,方便选取数据
5. 因子
- 变量:名义型、有序型、连续型
- 类别(名义型)变量和有序类别(有序型)变量在R中成为因子(factor)
-
diabetes <- c("Type1", "Type2", "Type1", "Type1")
名义型变量 -
status <- c("Poor", "Improved", "Excellent", "Poor")
status <- factor(status, order=TRUE)
有序型变量,按字母排序status <- factor(status, order=TRUE,
levels=("Poor", "Improved", "Excellent"))
给定变量顺序 -
sex <- factor(sex, levels=c(1, 2),
labals=c("Male", "Female"))
将变量转换为一个无序因子,输出时输出labal值
6. 列表
- 若干对象的有序集合,对象可以是向量、矩阵、数据框或其他列表
- 由
list()
构建列表mylist <- list(object1, object2, ...)
2. 处理数据的实用函数
函数 | 用途 |
---|---|
length(object) |
显示对象中元素/成分的数量 |
dim(object) |
显示某个对象的维度 |
str(object) |
显示某个对象的结构 |
class(object) |
显示某个对象的类或类型 |
mode(object) |
显示某个对象的模式 |
names(object) |
显示某对象中各成分的名称 |
c(object, object, ...) |
将对象合并入一个向量 |
cbind(object, object, ...) |
按列合并对象 |
rbind(object, object, ...) |
按行合并对象 |
object |
输出某个对象 |
head(object) |
列出某个对象的开始部分 |
tail(object) |
列出某个对象的最后部分 |
ls() |
显示当前的对象列表 |
rm(object, object, ...) |
删除一个或多个对象 |
rm(list = ls()) |
删除当前工作环境中的几乎所有对象 |
newobject <- edit(object) |
编辑对象并另存为newobject |
fix(object) |
直接编辑对象 |
上一篇: Yii2框架数据库简单的增删改查语法小结