R语言:数据结构

本文介绍了R语言中的数据结构,包括向量、矩阵、数组、列表、因子、缺失值、数据框和日期时间的使用。向量可通过vector、c函数创建,矩阵和数组通过matrix、array函数生成,列表允许不同类型的元素,因子处理分类数据,数据框存储表格数据,日期时间用Date和POSIXct表示。此外,还讲解了如何进行元素命名、拼接以及日期时间的转换操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据结构

1.向量

向量有三种生成方式:vector函数、生成等差数列组成的数组、c函数。
如:
vector函数中第一部分为向量类型,如:“character”;第二部分为向量长度,如:length = 10:

> x <- vector("character",length = 10)

生成一个有四个元素,依次为1,2,3,4的整数型向量:

> x1 <- 1:4

c函数会将向量中元素强制转换为同一类型:

> x2 <- c(1,2,3,4)
> x3 <-  c(TRUE,10,"a")
> x3
[1] "TRUE" "10"   "a" 

可以看出c函数将输入的第一个逻辑类型元素TRUE,第二个数值型元素10和第三个字符型元素"a"均转化为了字符型"TRUE"、“10"和"a”。

> x4 <- c("a","b","c")
> as.numeric(x4)   # 将对象类型转化为数值型
[1] NA NA NA
Warning message:
NAs introduced by coercion 

出现了警告信息:缺失值NA被引入,即x4中三个元素均转化为了缺失值NA,原因:R无法将字符转化为数字

> as.logical(x4)   # 将对象类型转化为逻辑型
[1] NA NA NA
> as.character(x4)   # 将对象类型转化为字符型
[1] "a" "b" "c"
> class(x1)
[1] "integer"

可以看出x1类型为整数型。

使用name函数给x1中添加名称,四个元素分别命名为a,b,c和d:

> x1   # 输出x1
[1] 1 2 3 4
> names(x1) <- c("a","b","c","d")  # 对x中各元素进行命名
> x1  # 输出x1
a b c d 
1 2 3 4 

可以看出命名后,x1的输出结果与命名前不同,第一行为各元素名称,第二行为各元素的值

2.矩阵和数组

矩阵可以认为是向量+维度属性(nrow,ncol)。
矩阵有两种生成方式:使用matrix函数、将向量转化为矩阵。
数组可以是2维及以上,而矩阵只能2维。
使用array函数生成数组。
如:
生成一个3行2列的矩阵,nrow为行数,ncol为列数

> x <- matrix(nrow = 3,ncol = 2) 
> x
     [,1] [,2]
[1,]   NA   NA
[2,]   NA   NA
[3,]   NA   NA

可以看到,上述matrix函数生成了一个3行2列的空矩阵

按行填写只需要将方括号中的逗号位置改变,或者参照矩阵中方括号及数字的写法即可:

> x[,1]=c(1:3)    # 第一列内容为1,2,3
> x[,2]=c(4:6)    # 第二列内容为4,5,6
> x               # 输出x
     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6

使用nrow函数和ncol函数可以查看对象的行数和列数:

 > nrow(x)
[1] 3
> ncol(x)
[1] 2

生成一个2行3列的矩阵,矩阵中元素为1,2,3,4,5,6:

> x1 <- matrix(1:6,nrow = 3,ncol = 2)
> x1
     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6

可以看出,R默认按列将1~6填入矩阵。
在函数最后加入byrow=T这个参数,可以按行填入元素

> x2 <- matrix(1:6,nrow = 3,ncol = 2,byrow=T)
> x2
     [,1] [,2]
[1,]    1    2
[2,]    3    4
[3,]    5    6
> dim(x1)  # 输出x1的维度信息
[1] 3 2

可以看出,x1为3行2列的矩阵,输出结果中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值