[R]第二节 练习一关于数值向量
创始人
2024-01-28 12:51:18
0

1.产生一个等差数列(1,3,5,7,……,99)赋值给向量x

x <- array(seq(from=1, to=99, by=2))

seq函数解析

seq(from,to,length)该函数的意思是生成一组数字,从from开始,到to结束,每两个数间的间隔是length,如:

seq(2,10,2),会生成一组数:2 4 6 8 10

seq(from,to,length.out=by)表示生成一组从from到to的数量为num的数

by = ((to - from)/(length.out - 1))

附seq的其它用法:

seq(from, to)

seq(from, to, by= )

seq(from, to, length.out= )

seq(along.with= )

seq(from)

seq(length.out= )

2.产生一个内容重复的数列(1,2,3,4,5……,1,2,3,4,5),重复次数为10,并将其赋值给向量y。

z<-rep(c(1:5),10)

rep函数解析

函数形式:rep(x, time = , length = , each = ,)

参数说明:

x:代表的是你要进行复制的对象,可以是一个向量或者是一个因子。

times:代表的是复制的次数,只能为正数。负数以及NA值都会为错误值。复制是指的是对整个向量进行复制。

each:代表的是对向量中的每个元素进行复制的次数。

length.out:代表的是最终输出向量的长度。

示例:

rep(1:4, 2)  #对向量(1,2,3,4)复制两次
[1] 1 2 3 4 1 2 3 4
rep(1:4, each = 2)   #对向量(1,2,3,4)中的每个元素复制两次
[1] 1 1 2 2 3 3 4 4
rep(1:4, each = 2, length.out = 4)  #最后输出向量的长度为4
[1] 1 1 2 2

rep(x, …):将vector x的值循环n遍

rep(1:4, 2)
[1] 1 2 3 4 1 2 3 4

…: 除了x的其他参数,可以通过…传到其他方法里

times:整个数组循环几遍

rep(1:4, each = 2, times = 3)
[1] 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4

each:每个element循环几遍

rep(1:4, each = 2)
[1] 1 1 2 2 3 3 4 4
rep(1:4, c(2,2,2,2))
[1] 1 1 2 2 3 3 4 4
rep(1:4, c(2,1,2,1))
[1] 1 1 2 3 3 4  

length.out 输出长度为多少

rep(1:4, each = 2, len = 4)
[1] 1 1 2 2
长了会被截掉
rep(1:4, each = 2, len = 13)
[1] 1 1 2 2 3 3 4 4 1 1 2 2 3
短了会根据前面规则补上

3.向量z由x和y组成。请判断x、y、z的属性是否为向量

is.vector(z2)

4.请删除x中第个1数值

x[-1] #这里实际上并没有对x进行改变

x <- x[-1] #这样的话就修改了向量x

5.请删除y中所有的取值1。

如何删除指定数据-subset or which()

讲一下利用索引的手法删除数据集合。

数据如下

>  Data英雄 职业 熟练等级 使用频次 胜率
1     后裔 射手        5      856 0.64
2   孙尚香 射手        5      211 0.10
3   狄仁杰 射手        5      324 0.20
4   李元芳 射手        4       75 0.30
5   安琪拉 法师        5     2324 0.40
6     张良 法师        4      755 0.50
7 不知火舞 法师        4      644 0.60
8     貂蝉 法师        3      982 0.70
9             NA       NA   NA

法一:互斥法

> # 提取法师职业
> subset(Data, 职业 != "法师")英雄 职业 熟练等级 使用频次 胜率
1   后裔 射手        5      856 0.64
2 孙尚香 射手        5      211 0.10
3 狄仁杰 射手        5      324 0.20
4 李元芳 射手        4       75 0.30
> # 提取非法师职业
> subset(Data, 职业 != "法师")英雄 职业 熟练等级 使用频次 胜率
1   后裔 射手        5      856 0.64
2 孙尚香 射手        5      211 0.10
3 狄仁杰 射手        5      324 0.20
4 李元芳 射手        4       75 0.30
> # 提取胜率大于等于50%
> subset(Data,  胜率 >= 0.5)英雄 职业 熟练等级 使用频次 胜率
1     后裔 射手        5      856 0.64
6     张良 法师        4      755 0.50
7 不知火舞 法师        4      644 0.60
8     貂蝉 法师        3      982 0.70
> # 提取胜率小于50%
> subset(Data,  胜率 < 0.5)英雄 职业 熟练等级 使用频次 胜率
2 孙尚香 射手        5      211  0.1
3 狄仁杰 射手        5      324  0.2
4 李元芳 射手        4       75  0.3
5 安琪拉 法师        5     2324  0.4

方案一可以解决一部分的这类问题,但是这种方案需要你的全集不会有缺失值非数这样的其他不在全集里的事件。所以有下面第二种补充方法。

法二:位置法

> n = which(Data$胜率 >= 0.5)
> Data[-n,]英雄 职业 熟练等级 使用频次 胜率
2 孙尚香 射手        5      211  0.1
3 狄仁杰 射手        5      324  0.2
4 李元芳 射手        4       75  0.3
5 安琪拉 法师        5     2324  0.4
9           NA       NA   NA

可以看到这种删除只删除了胜率大于等于50%,保留了缺失值。

那么回归到我们这里的问题

如何删除向量y中所有的1

方法1👇

y<-subset(y,y != 1)

方法2👇

n <- which(y == 1)
y[-n]

6.请选择出x中第2个数值,以及>90的数值,结果存放在同一个向量中

x <- c(1:100)
y <- c(x[2],subset(x,x>90))
print(y)

7.请选择出x中分别处于偶数位置和奇数位置的数值。

> x<-c(1:100)
> max(x)
[1] 100
> jswz<-seq(from=1,to=max(x),by=2)
> oswz<-seq(from=2,to=max(x),by=2)
> jswz[1]  1  3  5  7  9 11 13 15 17 19 21 23 25 27 29 31 33 35
[19] 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71
[37] 73 75 77 79 81 83 85 87 89 91 93 95 97 99
> oswz[1]   2   4   6   8  10  12  14  16  18  20  22  24  26
[14]  28  30  32  34  36  38  40  42  44  46  48  50  52
[27]  54  56  58  60  62  64  66  68  70  72  74  76  78
[40]  80  82  84  86  88  90  92  94  96  98 100

相关内容

热门资讯

宁夏一煤矿发生冒顶事故 已造成... 中新网7月13日电 据吴忠市应急管理局微信公众号消息,2025年7月12日19时56分许,宁夏力量矿...
大病保险买什么险种好?不懂千万...   现在大家的生活水平提高了不少,很多人都给自己和家里人购买了保险,但是现在市面上保险平台很多,有些...
团贷网最新消息2022通报,团...   团贷网的案子想必大家都不陌生,团贷网非法吸收公众存款案的追赃控赃、涉案资产处置等,无数受害者在团...
手机号查询快递,没有单号怎么查...   我们网购之后,想要知道快递的详细信息一般都是通过相关的订单信息查看。那么如果遇到他人买给我的快递...
怎么查询医保卡余额?该如何查询...   如今大家都会使用社保卡,二我们大多使用的都是第二代社保卡,那么很多小伙伴就好奇自己的社保卡该如何...
个人所得税退税是什么意思?什么...   相信很多小伙伴都对个人所得税这个词并不陌生,那么个人所得税到底是什么意思呢?需要满足什么条件才能...
急用钱借款5000元,哪里有5...   在大家的生活中总是会遇到生活困难的时候,手头资金短缺的情况并不少见。那么当资金不够的时候,该从哪...
延迟退休方案2022年正式实施...   每个人都会变老,但是变老的话就么有什么劳动力,就需要退休了,所以国家就颁布了很多的退休政策,更是...
乡镇小学老师工资多少一个月,值...   老师一直是德高望重的代表,也是传道解惑的无私的人,所有有很多的诗词或者是歌词赞颂老师。比如李商隐...
接手工活订单的平台,有哪些量大...   在家里闲着的小伙伴想着能不能在家里找份工作,做手工活之类的。但是很多小伙伴想要找做手工活的平台,...