R语言1 创建数据集

创建数据集

文章目录

  • 创建数据集
    • 数据集的概念
    • 数据结构
      • 向量
      • 矩阵
      • 数组
      • 数据框
      • 因子
      • 列表


数据集的概念

数据集通常是由数据构成的一个矩形数组,表示观测表示变量
R中有许多用于存储数据的结构,包括标量向量数组数据框列表


数据结构

向量

向量是用于存储数值型字符型逻辑型数据的一维数组
标量是只含一个元素的向量,用于保存常量。
注:单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型)。同一向量中无法混杂不同模式的数据。
创建向量:c()

  • 创建数值型向量
x <- 100
a <- c(1, 2, 5, 3, 6, -2, 4) 

R语言1 创建数据集_第1张图片

  • 创建字符型向量
name <- "Jasson" 
b <- c("one", "two", "three")  

R语言1 创建数据集_第2张图片

  • 创建逻辑型向量
c1 <- TRUE
c2 <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE) 

R语言1 创建数据集_第3张图片

  • 定位和访问向量中的元素

访问向量中的第m个元素(和第n个元素),逗号用于访问向量中的指定元素

a[3]
b[c(1,3)]

使用冒号用于访问向量中第m个元素~到第n个元素

c2[2:4]

R语言1 创建数据集_第4张图片

  • 判断数值类型是否为向量
is.vector(a)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1bt5fSRS-1640266637828)(:/25ebd84309dc4eb78d1417843c0f1e35)]

矩阵

矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。
创建矩阵:matrix()
R语言1 创建数据集_第5张图片

  • 创建矩阵

eg1. 数字1~20,4行5列,按行填充

x1 <- matrix(1:20,nrow = 4,ncol = 5,byrow = TRUE)

R语言1 创建数据集_第6张图片

eg2. 定义一个4*4矩阵,名为Mat,矩阵第一行4 5 8 9,矩阵第二行 1 6 3 2,矩阵第三行 0 1 0 1,矩阵第四行5 2 0 1

m <- c(4,5,8,9,1,6,3,2,0,1,0,1,5,2,0,1)
Mat <- matrix(m,nrow = 4,ncol = 4,byrow = TRUE)

R语言1 创建数据集_第7张图片

  • 定位和访问矩阵中的元素

定位位于第2行,第1的元素

Mat[2,1]

定位第2行所有元素

Mat[2,] 

定位第1列所有元素

Mat[,1]

定位位于第1行,第2、3列的元素

Mat[1,c(2,3)]
Mat[1,2:3]

定位位于第1、2行,第2、3列的元素

Mat[1:2,2:3]
Mat[c(1,2),c(2,3)]

R语言1 创建数据集_第8张图片

  • 矩阵行列的命名
f <- c(3,5,2,4)
rname <- c("R1","R2")
cname <- c("C1","C2")
y <- matrix(f,nrow = 2,ncol = 2,dimnames = list(rname,cname))
y

R语言1 创建数据集_第9张图片

  • 判断是否为矩阵
is.matrix(y)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QX4DmhAd-1640266637832)(:/de152797fdef4754805da0890856296c)]

数组

数组(array)与矩阵类似,但是维度可以大于2。三维包括行、列、层。
创建数组:array()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Rox1vWK-1640266637832)(:/ce580f403cbb49ed922e50ba660e9f64)]

  • 创建数组
f1 <- c("A1","A2")
f2 <- c("B1","B2","B3")
f3 <- c("C1","C2","C3")
z <- array(1:18,c(2,3,3),dimnames = list(f1,f2,f3))
z

R语言1 创建数据集_第10张图片

  • 定位和访问数组中的元素(位于第2个矩阵的第1行第2列的数)
z[1,2,2]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-chDHlvMA-1640266637833)(:/e4004a8056804817b71fc62dd3a64405)]

  • 判断是否为数组
is.array(z)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yB2pkh10-1640266637834)(:/4246ff1575434040b8bc2a68c166634b)]

数据框

数据框中不同的列可以包含不同模式(数值型、字符型等)的数据。由于数据有多种模式,无法将此数据集放入一个矩阵,在这种情况下,使用数据框是最佳选择。
创建数据框:data.frame()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cco8ETab-1640266637834)(:/5a9a8482ae414ba8b1cee5d8ad75ed92)]

  • 创建一个数据框
ID <- c(1001,1002,1003)
NAME <- c("张三","李四","王五")
MATH <- c(90,85,95)
ENG <- c(85,90,90)
Score <- data.frame(ID,NAME,MATH,ENG)
Score

R语言1 创建数据集_第11张图片

  • 定位和访问数据框中的元素

访问数据框中的列

Score[1:2]
Score[2]
Score[,2]

R语言1 创建数据集_第12张图片

访问数据框中的行

Score[2,]

R语言1 创建数据集_第13张图片

访问数据框中的变量

Score$NAME
Score[c("MATH","ENG")]
summary(Score$MATH)

summary()函数:获取描述性统计量

R语言1 创建数据集_第14张图片

  • 判断是否为数据框
is.data.frame(Score)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mJaa61wl-1640266637836)(:/77c2aae8487c4ae08695706fd2dd0723)]

  • 调用数据框(attach),移除调用(detach)
    函数attach()可将数据框添加到R的搜索路径中。
    函数detach()将数据框从搜索路径中移除。
attach(md)
summary(Income)
detach(md)

上述代码等同于:> summary(md$Income)
R语言1 创建数据集_第15张图片

  • with()调用数据框
with(md,{summary(Income)})

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-726JRCe6-1640266637836)(:/cb278f0e1d45477f862d5047724978db)]

因子

变量可归结为名义型、有序型或连续型变量,类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor)。
创建因子:factor()

  • 因子的使用
    eg:将向量Type存储为(1, 2, 3, 1),并在内部将其关联为1=T1、2=T2和3=T3:
Type <- c("T1","T2","T3","T1")
TF <- factor(Type)
TF

R语言1 创建数据集_第16张图片
要表示有序型变量,需要为函数factor()指定参数ordered=TRUE:

Type <- c("T1","T2","T3","T1")
TF <- factor(Type, order=TRUE)
TF

在这里插入图片描述

对于字符型向量,因子的水平默认依字母顺序创建:

status <- c("Poor", "Improved", "Excellent", "Poor")
status <- factor(status, ordered=TRUE)
status 

即将向量编码为(3, 2, 1, 3),并在内部将这些值关联为1=Excellent、2=Improved以及3=Poor。
R语言1 创建数据集_第17张图片
但你可以通过指定levels选项来覆盖默认排序:

status <- factor(status, ordered=TRUE, levels=c("Poor", "Improved", "Excellent"))

各水平的赋值将为1=Poor、2=Improved、3=Excellent。
R语言1 创建数据集_第18张图片

对于数值型变量,可以用levels和labels参数来编码成因子:

sex <- c(1,2,1,1)
sex <- factor(sex, levels=c(1, 2), labels=c("Male", "Female"))
sex

即男性被编码成1,女性被编码成2。
R语言1 创建数据集_第19张图片

  • 判断字符型变量Type是否转换为因子TF:
is.factor(TF)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0AzgAbH9-1640266637837)(:/fdd40e6efb9047678dc2d4648fb4667a)]

列表

列表(list)是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,
component)的有序集合。某个列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合。
创建列表:list()

  • 创建一个列表
g <- "My First List" 
h <- c(25, 26, 18, 39) 
j <- matrix(1:10, nrow=5) 
k <- c("one", "two", "three") 
mylist <- list(title=g, ages=h, j, k)
mylist

R语言1 创建数据集_第20张图片

  • 定位和访问列表中的元素
mylist[2]
mylist["ages"]
mylist$ages

R语言1 创建数据集_第21张图片

  • 判断数据类型是否为列表:
is.list(mylist)

在这里插入图片描述
还可以判断列表中的其他数据类型:

is.matrix(j)

在这里插入图片描述

你可能感兴趣的:(R语言,r语言,开发语言)