Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据结构(部分内容)

数据结构(部分内容)

原创
作者头像
用户8284892
发布于 2023-03-08 14:51:26
发布于 2023-03-08 14:51:26
3250
举报

有哪些数据结构

元素:单一一个数据

向量:一系列数据的合集,一个向量中只能含有一种数据类型。

数据框:多组向量组合成的列表形式,一列为一个向量,每一列之间的数据类型可以不同。

向量

函数c(),括号里是向量中的元素

代码语言:txt
AI代码解释
复制
c(1,2,3,4,4,7,4)
c('a','asd','x')

在向量中放入大量连续数字可用:

代码语言:txt
AI代码解释
复制
a <- c(1:20)
---------
> a
 [1]  1  2  3  4  5  6  7  8  9 10 11 12
[13] 13 14 15 16 17 18 19 20

生成重复元素可用rep()

代码语言:txt
AI代码解释
复制
> b <- rep("x",times = 10)
> b
 [1] "x" "x" "x" "x" "x" "x" "x" "x" "x"
[10] "x"

生成有规律的一系列数据seq()

代码语言:txt
AI代码解释
复制
> c <-seq(from =1,to =20,by=3)  #from为起始数,to为截止数,by为步长
> c
[1]  1  4  7 10 13 16 19

生成随机数rnorm()

代码语言:txt
AI代码解释
复制
> rnorm(5) #括号中的数字代表生成多少个随机数
[1] -0.4294591  0.7380404  1.4849288
[4] -0.4250045 -0.8248760

向量组合

paste0()paste()

代码语言:txt
AI代码解释
复制
> paste0(rep('x',times=3),c(1:3))
[1] "x1" "x2" "x3"
> paste(rep('x',times=3),c(1:3))
[1] "x 1" "x 2" "x 3"

paste0()和paste()的区别为,paste()函数中有一个参数为sep=" ",意为以空格为间隔组合(默认)。而paste0()是无缝组合。

paste0函数中,逗号前的rep('x',times=3)会生成三个x的向量,逗号后的c(1:3)会生成一个1到3的向量,paste0函数的作用就是将这两个向量已平行的方式组合在一起

x

x

x

1

2

3

循环补齐

如果逗号前后的向量中的元素数量不一致,短的向量会进行循环补齐

代码语言:txt
AI代码解释
复制
> paste0(rep('x',times=3),c(1:5))
[1] "x1" "x2" "x3" "x4" "x5"
> paste0(rep('x',times=8),c(1:3))
[1] "x1" "x2" "x3" "x1" "x2" "x3" "x1"
[8] "x2"

第一个代码产生的效果为:

x

x

x

x

x

1

2

3

4

5

第二个代码产生的效果为:

x

x

x

x

x

x

x

x

1

2

3

1

2

3

1

2

交集、并集、差集

交集:intersect()

代码语言:txt
AI代码解释
复制
> x <- c(1,2,5,6,3)
> y <- c(2,8,4,9,5)
> intersect(x,y)
[1] 2 5

并集:union()

代码语言:txt
AI代码解释
复制
> x <- c(1,2,5,6,3)
> y <- c(2,8,4,9,5)
> intersect(x,y)
[1] 2 5
> union(x,y)
[1] 1 2 5 6 3 8 4 9

差集:setdiff()

代码语言:txt
AI代码解释
复制
> x <- c(1,2,5,6,3)
> y <- c(2,8,4,9,5)
> intersect(x,y)
[1] 2 5
> union(x,y)
[1] 1 2 5 6 3 8 4 9
> setdiff(x,y)  #x中与y不同的元素
[1] 1 6 3
> setdiff(y,x)  #y中与x不同的元素
[1] 8 4 9

%in%

代码语言:txt
AI代码解释
复制
> x <- c(1,2,5,6,3)
> y <- c(2,8,4,9,5)
> x %in% y  #x中的每一个元素在y中是否存在
[1] FALSE  TRUE  TRUE FALSE FALSE
> y %in% x  #y中的每一个元素在x中是否存在
[1]  TRUE FALSE FALSE FALSE  TRUE

%in%是一种遍历的比较,比如说x%in%y,是x中的每一个元素依次对y中的所有元素比较一遍;y%in%x同理,是y中的每一个元素依次对x中的所有元素比较一遍.

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
时间都去哪儿了-技术人员的时间管理
是不是有这样一种感觉,明明一天开始的时候计划要做很多事情,但是忙忙碌碌一天之后发现,杂七杂八的事情做了一堆,重要的事情却一件没完成。
奎哥
2018/08/31
4020
时间都去哪儿了-技术人员的时间管理
时间管理笔记(三)
昨天,我们谈到了如何让自己专注于自我真正的目标,而不再那么容易被感觉拐跑,并形成行动的正循环。 image 不过,在昨天的结尾,我们提到了:如果规划不当的话,正循环是持续不了太久的。 所以,今天我们将
iOSDevLog
2018/05/17
9860
我的时间管理经验
你是不是还在使用todolist管理每天要做的事情?你是不是感觉自己每天忙忙碌碌但是又不知道忙了些啥?今天这篇文章用于分享下我的时间管理经验,希望你能有所收获。
阿杜
2019/05/13
6930
我的时间管理经验
时间管理:《从番茄 ToDo 到 Forest 又回到番茄》
又过去 19 天了,我这半死不活的公众号又要复苏了,今天的内容跟大家都经常听的 “番茄工作法” 有关,(小声哔哔:不知道啥叫番茄工作法是啥?文末会送书《番茄工作法图解:简单易行的时间管理方法》)。
Java宝典
2021/01/14
1.3K0
时间管理:《从番茄 ToDo 到 Forest 又回到番茄》
带你破解时间管理的谜题
你是不是还在使用todolist管理每天要做的事情?你是不是感觉自己每天忙忙碌碌但是又不知道忙了些啥?今天这篇文章用于分享下我的时间管理经验,希望你能有所收获。
青南
2019/05/14
6010
带你破解时间管理的谜题
25分钟改变你的工作效率:番茄工作法
少年,你是不是每5分钟就会拿起一次手机?你是不是每天忙忙碌碌但最后好像什么也没干?你是不是日复一日的加班感觉身体被掏空?
Allen Cheng
2018/09/10
1.5K0
25分钟改变你的工作效率:番茄工作法
新技术学习中的时间管理:如何高效安排学习和工作?
在现代快节奏的工作环境中,如何高效地安排学习时间,尤其是在学习新技术的过程中,已经成为了许多人面临的挑战。忙碌的工作、无尽的任务和琐事可能让你感到无法腾出时间来提升自己,尤其是当你有很多新技能要掌握时,常常感觉一切都成了拖延症的源头。但其实,只要合理管理时间,不仅可以避免这些任务的干扰,还能确保自己在持续学习的同时,不会感到压力山大。
bug菌
2025/03/25
1300
新技术学习中的时间管理:如何高效安排学习和工作?
时间管理的道法术器
我曾经写过一篇文章:不会管理时间,怎么办?其中介绍了时间管理方法无效的 3 个原因,并有针对性地总结了 3 个对策。
数据森麟
2021/01/25
8450
时间管理的道法术器
你真的了解番茄钟么
无论是内部打断还是外部打断,番茄工作法都着重强调要保证在25分钟的时间内专注做同一件事情。
Datawhale
2019/07/08
1.2K0
你真的了解番茄钟么
IT工程师的自我管理 | 洞见
工作多年,我们见识到了很多厉害的人,他们可以兼顾家庭和工作,合理安排自己的事务和时间,能冷静的处理突发事件且理智的做出决策,把所有事情安排的妥妥当当。最初我以为这种能力来源于性格、情商甚至是天赋,因为
ThoughtWorks
2018/04/13
6620
IT工程师的自我管理 | 洞见
快来看!DeepSeek推荐的时间管理方式
首先是可以提高工作效率,通过合理规划时间,可以集中精力完成重要任务,避免拖延和浪费时间。例如,使用番茄工作法将工作时间分割成25分钟的高度集中时段,能有效提高工作效率。
闫同学
2025/04/11
1420
工作时间管理之番茄工作法
互联网时代,注意力变成越来越宝贵的资源,因为在我们身边,分散注意力的恶魔实在是太多了,朋友圈、微博、各种游戏、各种视频、各种新闻,昨晚章鱼回家的时候发现,我家的电梯里都放了一个显示屏,轮番放着炫目的广告。
一个会写诗的程序员
2020/05/08
7950
如何在 FlowUs、Notion 等笔记软件中使用「番茄工作法」?
在我们的日常生活中,你会接触到各种各样的生产力系统。比如,GTD、艾森豪威尔矩阵、看板,以及一些更为复杂的生产力系统。然而,在经历过各种折腾以后,人们可能会发现自己并不需要多么精巧和复杂的生产力系统,老老实实以时间块为单位聚精会神地去工作便能收获高效率。对此,番茄钟工作法便是一种久经考验、简单好用的生产力方法。
数字花园
2022/06/22
6100
如何在 FlowUs、Notion 等笔记软件中使用「番茄工作法」?
谈谈如何构建自己的时间管理系统?
我们总说要学会利用碎片时间,可是要怎么利用呢?在此之前,我们先来讨论一个问题,当你有了碎片时间,你会干什么?
我被狗咬了
2020/03/05
1.1K0
一番码客-番茄时钟
认真做过事的同学应该都有体会,减少被打断,专注的做一件事才是高效的做事方式。 阻碍我们专注的通常有两种情况: 一是外部中断,比如专心写代码的你被产品过来提需求,比如专心游戏的你被喊回家吃饭; 二是内部中断,比如专注了一个小时写代码的你感到了腰酸腿疼、注意力涣散,比如专注刷抖音三个小时的你感到重复单调、索然无味。
efonfighting
2019/08/02
8040
一番码客-番茄时钟
【干货】扎克伯格的26张PPT,让工作提质增效
雷军曾经说过:不要用战术的勤奋掩盖战略的懒惰,这句话不仅适用于战场,也同样适用于企业管理。本文整理了全球最年轻亿万富豪Facebook创始人马克·扎克伯格亲自做的26张PPT,可以说这26张PPT是小
钱塘数据
2018/03/27
1K0
【干货】扎克伯格的26张PPT,让工作提质增效
【Dev Club 话题讨论】程序员的成长离不开哪些软技能?
Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师。定期会举行嘉宾分享,话题讨论等活动。 本期讨论话题为:程序员的成长离不开哪些软技能? 首先,什么是软技能? 软技能就是激活人资的能力,即是调动别人的资源和知识的能力以及调动自己知识进行创造性思维的能力!软技能能力值越高,处理事情的能力就越强,它是衡量一个人处理事情能力的量表!这里的资源指:知识和朋友。软技能实际上是指那些“不易看见的技能”,是一个人“激发自己潜能和通过赢得他人认可和合作放大自己的资源,以获得
腾讯Bugly
2018/03/23
7400
感觉自己没工作效率?来看看Facebook内部的26张PPT,让你快速提升工作状态!~看完比喝浓缩红牛管用!
3、当你在状态时,就多干点;不然就好好休息:有时候会连着几天不是工作状态,有时在工作状态时却又能天天忙活 12 小时,这都很正常的。
Chris生命科学小站
2023/02/28
2160
感觉自己没工作效率?来看看Facebook内部的26张PPT,让你快速提升工作状态!~看完比喝浓缩红牛管用!
扎克伯格为提高员工工作效率,亲自做了这 26 张 PPT ,值得收藏
源 / Facebook 全球最年轻亿万富豪宝座的Facebook创始人马克·扎克伯格,为了提升员工的工作效率,亲自做了这26张PPT。 本文分享了来自Facebook内部的26张PPT,希望能让你快速提升工作状态! 1、时间常有,时间在于优先。 2、时间总会有的:每天只计划 4~5 小时真正的工作。 3、当你在状态时,就多干点;不然就好好休息:有时候会连着几天不是工作状态,有时在工作状态时却又能天天忙活 12 小时,这都很正常的。 4、重视你的时间,并使其值得重视:你的时间值 1000
顶级程序员
2018/05/03
8990
扎克伯格为提高员工工作效率,亲自做了这 26 张 PPT ,值得收藏
那些漂亮的不像实力派的时间管理软件
此外,它还支持任务的分割,支持任务优先级,并且支持模板,总之对于待办任务的管理,它绝对是专家中的专家。
程序那些事儿
2023/03/07
6220
那些漂亮的不像实力派的时间管理软件
推荐阅读
相关推荐
时间都去哪儿了-技术人员的时间管理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档