R语言之列表游记

浏览: 1213

不管向量(vector)数据库 矩阵 列表,其都可以按 “创建~常规~命名”来梳理流程

其中常规分“索引 ~增加/删除 ~长度 ~命名/访问”等


创建

  • 创建一个来举例
  • 1.png
  • 注意:name   salary  union  都是不同的类型我们可以证明
  • 2.png
  • 其中name   salary  union有个术语叫 标签
  • 上边假设我要单独提取的话采用这种方法
  • 3.png
  • 这里有个要点:用2个中括号的一般是索引的这种体现在列表或数据框,对于向量用一个单中括号就行了
  • 但有没有别的方法呢,有的 我们看看
  • 对于其实对于上边的,可以不用写name   salary  union
  • 如下

  • 从这里我们可以看出,R语言是要求有所谓的名称了,但是如果不存在的话就会以1 2 3等数量来表示
  • 同时我们注意到,这边用了双括号 这和后边的索引完全是一致的。也会观察到“”这样的一般都是字符,上边已经证明过了
  • 另外从书上可以得知,对于索引的“名称”可以进行简化的

常规

  • 先说索引,好歹按上边流程来弄
  • 其实刚才的截图里已经用[[]]来验证了,所以思考下还有别的方法么,当然实在找不到咱去书上看看,有个思考还是好的
  • 刚才用的双[[]],如果[]会怎样 呢我们尝试下

  • 数据量较少,和之前的双引号是一样的还有个方法么,有如下
  • 5.png
  • 由上图得知,在索引的时候名称一般都是作为字符型的,要用“”否则容易失误可以尝试证明
  • 再说增加/删除
  • 7.png
  • 假设我在这里添加个c,思考下怎么做先尝试如果不会再看课本,刚才在做的过程中注意下Z$某某,如果有心你会发现很多都是有一定的规则前后贯穿的
  • 8.png
  • 其实用的倒推法,这里都是用的索引的方法,但索引除了$法外,还有【】法
  • 10.png
  • 上边是加法的过程,如果打算要搞减法呢,那就前边加个“-”号也就是减号,尝试看看证明思路对不对
  • 12.png
  • 尝试了后第一个运行不起来,但理论上可以的,这个留在后边慢慢探索,之前的文章里“-”可以表示排除
  • 这里的方法注意又用了索引给她新赋值,多有趣 简单简洁之美
  • OK,下篇
  • 长度,这个就很简单了 ,直接函数length(x)就行了,这里忽略不说了
  • 在下篇,获取或访问到了结束篇的时候了
  • 命名,初中的命名英文叫什么来着,what is your  name?没错,names(这里为什么后缀个s我不知道),这里通过实际验证,发现用命名的思路走不通会解释不通,我们反过来想:既然有标签,标签都是有名称的我们可以通过获取名称来达到获取值,这就是names的价值所在
  • 还是以之前的例子为证明
  • 15.png
  • 注意看,它获取的是标签,而不是值,符合上边言论
  • 如果想获得值呢,自然前边说过了这里就用来了,unlist()函数
  • 16.png

  • 变成向量了,全是字符,可以通过双引号来证明

        这里提示下,根据unlist的帮助文件提示,UNlist都会强制转换为一种共同存储模式,哪怕列表里存在好几种模式,其实变成向量换句话说是去除列表化,结果之所以是字符串向量,在于优先级         排序是NULL<raw<逻辑类型<整形


  • 最后一个函数,apply系列函数,我看了R语言卡片,其还有另外相似的Lapply(x,fun) tapply(x,index,fun=),sapply(同lapply,比之更友好)
  • 语法如下:lapply()(代表list  apply)和矩阵的apply()用法一致,就是对于每个组件也就是x执行给定的函数就是fun,
  • 18.png
  • 出错提示:list不是对象,所以取[[]]是有问题的,这在后边换成对象a 就好了得到证明
推荐 1
本文由 求知不才 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

2 个评论

楼主没图片呢
搞定

要回复文章请先登录注册