R-基本数据类型——向量

向量的创建

1. 向量的特点:

1)有序:向量的元素有对应的位置(即下标),根据向量中元素的下标可以访问特定元素
2)元素类型统一:常用的数值型向量、字符型向量、逻辑型向量(向量中不可混杂不同类型的元素)

注意:单个数值的向量长度为1

2. 向量的创建
# 创建数值型的向量,使用函数c()
num1 <- c(9.1,8.3,7.3)
num1
num2 <-1:10 #创建连续的向量方式
num2

# 创建字符型向量,使用函数c(),用单引号或双引号都可以
char <- c('a','b',"c")
char

# 创建逻辑向量
logit <- c(TRUE,FALSE,T,F)
logit

# 创建一个混合元素的向量
c(1,'a',T)  # 输出结果为[1] "1"    "a"    "TRUE";函数会默认将其他类型的元素都转换成字符型的元素
# 用函数factor()创建因子型向量
sex <- c('F','M','F','M')
sex
sexf <- factor(sex)
sexf
3. 向量索引/查看
num1[1] # 表示查看向量num1中的第一个元素
num1[c(1,3)] # []中可以写一个向量,表示查看num1中第一个和第三个元素
num1[c(T,F,T)] # []中也可以写逻辑型的向量,T表示要查看的,F表示不查看的
num1[-2] # 负整数表示不想查看的元素位置

# 还可以在索引中输入字符型的向量来对向量元素进行查看,不过前提是这个向量中的元素有对应的名字
num3 <- c('first'=9.1,'second'=8.2,'third'=7.3)
num3
num3[c('first','third')]

举个较为复杂的例子:生成一个20到30的向量,提取其中的偶数

a <- 20:30
a%%2==0 # %%表示取余,== 表示判断恒等于。本条代码的输出结果是逻辑型的向量,可以帮助我们之后做索引,查看偶数
a[a%%2==0]
4. 对向量元素进行修改
# 把num1中的第一个元素改成100
num1
num1[1] <- 100
num1

# 还可以对原始向量中多个元素进行修改值
num1[c(1,3)] <- c(99.9,77)
num1

查看变量的类型

可以在右上角环境处查看变量类型,除此之外可以用class()函数查看

class(num1) # [1] "numeric"
class(char) # [1] "character"
class(logit) # [1] "logical"
class(sexf) # [1] "factor"

向量类型的查看和转换is/as函数的使用

# 查看一个向量是否是字符型的,如果不是就把它转变为字符型的向量
is.character(num1) # [1] FALSE
as.character(num1) # [1] "99.9" "8.3"  "77"  ,但现在仅仅是一个结果,还并没有把这个结果赋值给num1
num1 <- as.character(num1) # 重新赋值
class(num1) # [1] "character"
 
is.character(char)
is.character(logit)
logit <- as.character(logit)
is.character(logit)

# 数值型向量判断和转换
is.numeric()
as.numeric()

# 逻辑型向量判断和转换
is.logical()
as.logical()

# 将一个0,1,2的向量转换成逻辑型的向量
as.logical(c(0,1,2))  # [1] FALSE  TRUE  TRUE,会发现0在转换成逻辑型元素的时候被转换成了FALSE,这是R语言的逻辑
5. R中的特殊值

NA:缺失值
NaN:无意义的数,比如对负数开平方根的时候
Inf:正无穷
-Inf:负无穷
NULL:常常被用在函数的参数中,表示某个参数没有赋值

b <- c(NA,0/1,sqrt(-1),1/0,-1/0)
b # [1]   NA    0  NaN  Inf -Inf
is.na(b) # 查看向量中是否存在缺失值,返回TRUE表示对应的是缺失值,在R中会同时将NA和NaN都记为缺失值
is.finite(b) # 查看向量中是否是有限值
is.infinite(b) # 查看向量中是否是无穷元素

练习

# 1. 生成向量a,a的元素是1到100的整数
a <- 1:100

# 2.把向量a的第一个元素修改成0
a[1] <- 0

# 3. 删除向量a的前20个元素(提示:可以使用负数索引)
a <- a[c(-1:-20)]

# 4. 生成向量b,b的元素是1到100之内的奇数。(提示:奇数除以2,余数为1)
b <- 1:100
b < b[b%%2==1]

b <- (1:100)[(1:100)%%2==1] # 简化代码
b <- seq(1,100,2)

# 5. 生成向量d,向量d的元素有1,'abc'
d <- c(1,'abc')

# 查看向量d的数据类型
class(d)
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值