1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > R语言1 创建数据集

R语言1 创建数据集

时间:2021-06-28 03:07:33

相关推荐

R语言1 创建数据集

创建数据集

文章目录

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

数据集的概念

数据集通常是由数据构成的一个矩形数组,表示观测表示变量

R中有许多用于存储数据的结构,包括标量向量数组数据框列表

数据结构

向量

向量是用于存储数值型字符型逻辑型数据的一维数组

标量是只含一个元素的向量,用于保存常量。

注:单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型)。同一向量中无法混杂不同模式的数据。

创建向量:c()

创建数值型向量

x <- 100a <- c(1, 2, 5, 3, 6, -2, 4)

创建字符型向量

name <- "Jasson" b <- c("one", "two", "three")

创建逻辑型向量

c1 <- TRUEc2 <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE)

定位和访问向量中的元素

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

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

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

c2[2:4]

判断数值类型是否为向量

is.vector(a)

矩阵

矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。

创建矩阵:matrix()

创建矩阵

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

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

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)

定位和访问矩阵中的元素

定位位于第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)]

矩阵行列的命名

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

判断是否为矩阵

is.matrix(y)

数组

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

创建数组:array()

创建数组

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

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

z[1,2,2]

判断是否为数组

is.array(z)

数据框

数据框中不同的列可以包含不同模式(数值型、字符型等)的数据。由于数据有多种模式,无法将此数据集放入一个矩阵,在这种情况下,使用数据框是最佳选择。

创建数据框:data.frame()

创建一个数据框

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

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

访问数据框中的列

Score[1:2]

Score[2]

Score[,2]

访问数据框中的行

Score[2,]

访问数据框中的变量

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

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

判断是否为数据框

is.data.frame(Score)

调用数据框(attach),移除调用(detach)

函数attach()可将数据框添加到R的搜索路径中。

函数detach()将数据框从搜索路径中移除。

attach(md)summary(Income)detach(md)

上述代码等同于:> summary(md$Income)

with()调用数据框

with(md,{summary(Income)})

因子

变量可归结为名义型、有序型或连续型变量,类别(名义型)变量和有序类别(有序型)变量在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

要表示有序型变量,需要为函数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。

但你可以通过指定levels选项来覆盖默认排序:

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

各水平的赋值将为1=Poor、2=Improved、3=Excellent。

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

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

即男性被编码成1,女性被编码成2。

判断字符型变量Type是否转换为因子TF:

is.factor(TF)

列表

列表(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

定位和访问列表中的元素

mylist[2]

mylist["ages"]

mylist$ages

判断数据类型是否为列表:

is.list(mylist)

还可以判断列表中的其他数据类型:

is.matrix(j)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。