R实验 基础(二)

  • 实验目的:
  1. 掌握向量的几种类型:数值向量、逻辑向量、字符向量、复数向量;
  2. 掌握生成向量几个的函数使用和向量的下标运算;
  3. 掌握因子的定义和相关函数的使用。

  • 实验内容:
  1. R语言中,数值向量用得非常多。生成数值向量的函数有:
    1. c(),生成任意数据构成的向量
    2. :,生成公差为+1或-1的等差数列构成的向量
    3. seq(),生成任意公差的等差数据构成的向量
    4. rep(),生成重复数据构成的向量

利用上述函数完成以下小题,并将代码和运行结果截图粘贴于每小题之下的空行。

生成一个向量,其元素是-π到π之间、公差为π/10的等差数列。

  • 实验内容:
  1. R语言中,数值向量用得非常多。生成数值向量的函数有:
    1. c(),生成任意数据构成的向量
    2. :,生成公差为+1或-1的等差数列构成的向量
    3. seq(),生成任意公差的等差数据构成的向量
    4. rep(),生成重复数据构成的向量

生成一个向量,其元素是10,20之间的10个等差数据数列。

生成一个向量,其元素是10,20之间的等差数列,元素个数与由5:17生成的向量的个数相同。

生成一个向量,其元素是由1~10,1~10这20个整数组成。

生成一个向量,其元素是由1~10中的每个数重复3次组成。

建立一个R文件,在文件中输入变量x = (1,2,3)T, y = (4,5,6)T,计算z = 2x + y + e,其中 e = (1,1,1)T。

构造一个向量x,向量是由5个1,3个2,4个3和2个4构成,注意用到 rep()函数。

逻辑向量:由TRUE(T)或FALSE(F)组成的向量称为逻辑向量,如z <- c(T, F, F, F)。对数值向量做逻辑运算(如:<, <=, >, >=, ==(等于), !=(不等于)),可以构造逻辑向量。

已知 x <- 1:5,完成以下练习,并在R中运行进行验证。

若y <- x > 3,则逻辑向量y等于什么? 

all(x>3)的结果是?

any(x>3)的结果是?

which(x>3)的结果是?

字符向量:由字符组成的向量称为字符向量,如z <- c("Tim", "Tom", "John", "Fan")。R语言中与字符向量有关的函数是paste(),它可以把多个向量对应的元素默认用一个空格连接起来,向量长度不同时,较短的向量会被重复使用。当其中有向量为数值向量时,连接时会自动转换成适当的字符串。另一个相似的函数是paste0(),此函数是把多个向量对应的元素直接连接起来。

完成以下练习,并在R中运行进行验证。

paste("Today is", date())的结果是?

labs<-paste("X", 1:6, sep = ""),参数sep表示连接多个向量中各对应数据所用的分隔字符,缺省为空格,则labs等于?

对比:labs1<-paste("X", 1:6),则labs1等于?

paste0("X", 1:6)的结果是?

paste(c("X","Y"), 1:8, sep="_")的结果是?

paste0(c("X","Y"), 1:8)的结果是?

数值向量的下标运算。在R语言中,向量的下标从1开始。数值向量的下标可以是:

正整数

负整数

向量(元素是正整数)

向量(元素是负整数)

逻辑向量

字符

已知v <- 10:20,完成以下练习,并在R中运行进行验证。

v[10]

v[c(1,3,5,9)]

v[1:5]

v[-1]

v[-(1:5)]

v[v>15]

在定义向量时可以给元素加上名字,如ages <- c(Li=33, Zhang=29, Liu=18),此时ages["Liu"]的结果为?ages[3]的结果为?

影响试验指标的原因或原因组合,称为因素或因子(factor),这些因子通常是名义变量或者有序变量,常用大写字母A、B、C等表示。每个试验因素的不同状态,称为因子水平,简称为水平(level)。在R语言中,生成因子的函数有两个:

factor():将一个向量转换成因子

gl():生成有规律的因子,在方差分析中经常会用到

完成以下练习,并在R中运行进行验证。

已知5位学生的性别,先利用c()函数生成字符向量,然后利用factor()函数生成因子变量。

sex <- c("M","F","M","M","F")

(sexf <- factor(sex)) #体会向量sex与因子sexf的区别

factor(1:3, levels=1:5) #水平数可以比向量元素个数多

factor(1:3 ,labels=c("A","B","C"))

gl(3,5) # 3是因子水平数, 5是每个水平数的重复次数

gl(3, 5, labels=paste0("A", 1:3))

gl(5,1,15) # 15是结果的总长度

gl(5,1,15, labels=paste0("B",1:5))

思考:(以下运算类型的题目请先进行笔算后,再在R中运算核对)

在R语言中,向量分为_________、__________、__________和复数向量。

数值向量,字符向量,逻辑向量

已知 n<- 5,则1:n-1与1:(n-1)的结果分别是什么?

rep(1:10, length.out=12),这段代码会出错吗?如果不会,结果是什么?

c(1,4)*c(2,3)的输出结果是什么?

因子与普通向量有什么区别?在R语言中定义一个因子有哪两个函数?

在R语言中,因子(factor)与普通向量(vector)有以下区别:

数据类型不同:因子是一种特殊的数据类型,而普通向量可以是任意数据类型,例如数值型、字符型、逻辑型等。

存储方式不同:因子是使用整数表示每个不同的水平(level),而普通向量直接存储数据本身。

有限的取值范围:因子的取值范围是有限的,即只能从事先定义好的水平中选择,而普通向量可以取任意值。

在R语言中,定义一个因子可以使用以下两个函数:

factor()函数gl()函数

vec<- c(2,4,6,8,10); vec[2]; vec[-2]的输出结果是什么?

测量得到了5位男士的体重和身高的数据如下:

体重(kg):60, 75, 65, 68, 70

身高(cm):170, 180, 165, 172, 178

分别存储在向量weight和height中。若想得到那些身高超过170cm的男士的体重数据,请写出相应的R代码。

weight[height > 170]

  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值