作者:村长,数据科学、指弹吉他及录音工程爱好者,浙大金融学博士在读,在data.table包和MongoDB的使用上有较多经验。

在前面

本期依然由村长为大家供稿,只为填上一期最后挖的坑,话不多说进入正题。

题提出

在上一期中,还记得我们留下的那个彩蛋吗?我们在对多列标准进行筛选时,在之前我们还进行了一步非常重要的提取,也就是将每一列观察值提取出某一特定的字段,而后生成一系列变量,这些变量的观测值只可能存在三种情况:醛固酮、继发性醛固酮或者NA。

经过这样的处理我们才能进行上一期公众号所讲述的下一步:以多列标准进行筛选的操作

我们先将这段代码放上来:

clinic

再来看看运行结果:

上述结果可以看出,我们重新生成了很多被处理过的变量,都带有后缀_xtrct,下面让村长对这一行代码进行详细解析。

:=

右边

关于 ':= lapply' 的用法,在这里小编不再赘述,如果大家对此不是很熟悉可以看这一期公众号:用data.table语句批量处理变量。

在这里通过链接中的推送的lapply使用原理,再加上stringr包中str_match这个函数的使用,截取出诊断结果中出现过的继发性醛固酮或者醛固酮,没有出现过的自动记为NA。代码如下:

lapply(.SD[, 2:23], str_match, "继发性醛固酮|醛固酮")

:=

左边

我们可以再回顾一下,上文链接中用data.table语句批量处理变量的推送中所提到的 ‘:=’ 左边格式的问题:
':=' 左边的格式应该是一个向量,一个带有需要被处理变量的字符格式的向量,这一点从colnames这个函数的使用可以得知。

那么对于一个字符格式向量的处理,最好的选择就是stringr这个包,在这里我们为需要提取一部分字段的变量,运用str_c这个函数,对每一个变量名加入了后缀_xtrct,从而生成一系列新的变量名,也即是我们上文中生成的那个数据集。

str_c(colnames(clinic)[2:23], "_xtrct")

最后我们把 ':=' 左右两边的代码组合在一起,放入data.table语句的j中就是我们在一开始所讲述的代码。

转载自公众号:大猫的R语言课堂

往期精彩:

  • R语言:以多列标准筛选特定行

  • 还在用tm?你OUT啦!

  • 从一件数据清洗的小事说起

  • 用data.table语句批量处理变量

  • R语言:哪个函数解析时间最快?

公众号后台回复关键字即可学习

回复 爬虫            爬虫三大案例实战回复 Python       1小时破冰入门回复 数据挖掘     R语言入门及数据挖掘回复 人工智能     三个月入门人工智能回复 数据分析师  数据分析师成长之路 回复 机器学习     机器学习的商业应用回复 数据科学     数据科学实战回复 常用算法     常用数据挖掘算法

愿有人与你立黄昏,有人问你粥可温↓

批量生成变量及引用_R语言:data.table语句批量生成变量相关推荐

  1. R语言data.table导入数据实战:data.table生成新的数据列(基于已有数据列)、生成多个数据列

    R语言data.table导入数据实战:data.table生成新的数据列(基于已有数据列).生成多个数据列 目录 R语言data.table导入数据实战:data.

  2. R语言使用order函数按照两个数据列的值排序data.table数据(主变量降序排序、次变量升序排序)

    R语言使用order函数按照两个数据列的值排序data.table数据(主变量降序排序.次变量升序排序) 目录

  3. R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象

    R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象 目录 R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象 #data.t ...

  4. R语言data.table导入数据实战:把data.frame数据转化为data.table数据

    R语言data.table导入数据实战:把data.frame数据转化为data.table数据 目录 R语言data.table导入数据实战:把data.frame数据转化为data.table数据 ...

  5. R语言data.table导入数据实战:data.table使用by函数进行数据分组(aggregate)

    R语言data.table导入数据实战:data.table使用by函数进行数据分组(aggregate) 目录 R语言data.table导入数据实战:data.table使用by函数进行数据分组( ...

  6. R语言data.table进行滚动数据连接,滚动连接通常用于分析涉及时间的数据(例如商业销售活动和对应的广告投放的安排之之间的关系)实战:实战和动画说明滚动数据连接的形式及方法

    R语言data.table进行滚动数据连接,滚动连接通常用于分析涉及时间的数据(例如商业销售活动和对应的广告投放的安排之之间的关系)实战:实战和动画说明滚动数据连接的形式及方法 目录

  7. R语言data.table进行滚动数据连接,滚动联接通常用于分析涉及时间的数据实战(动画说明滚动数据连接的形式):rolling joins data.table in R

    R语言data.table进行滚动数据连接,滚动联接通常用于分析涉及时间的数据实战(动画说明滚动数据连接的形式):rolling joins data.table in R 目录

  8. R语言data.table导入数据实战:data.table使用字符向量创建新的数据列

    R语言data.table导入数据实战:data.table使用字符向量创建新的数据列 目录 R语言data.table导入数据实战:data.table使用字符向量创建新的数据列

  9. rraylist参数_R语言︱list用法、批量读取、写出数据时的用法

    列表是一种特别的对象集合,它的元素也由序号(下标)区分,但是各元素的类型可 以是任意对象,不同元素不必是同一类型.元素本身允许是其它复杂数据类型,比如,列表 的一个元素也允许是列表.例如: > ...

最新文章

  1. 大图详解负载神器 LVS、Nginx及HAProxy工作原理
  2. 463. 岛屿的周长
  3. 重学TCP协议(9) 半连接队列、全连接队列
  4. 如何制定好的方案之四:执行力是决定因素
  5. img标签设置display:block,宽度无法100%
  6. jupyternotebook 报告_基本操作!在VS 代码中如何使用Jupyter Notebook
  7. ajax判断网络中断,如何检测由于网络Ajax调用失败断开
  8. 世粮署:马斯克、贝索斯等富豪应捐出部分资产缓解全球饥饿
  9. 【Es】es deep paging问题
  10. vs2012 编译cocos2d-x项目报error MSB3073
  11. C++14::lambda函数的类型
  12. 【CART与GBDT】
  13. Android开发+Java基础视频教程——第一讲
  14. catia曲面扫掠命令详解_CATIA建模教程(三)——扫掠曲面在曲面造型中的应用.pdf...
  15. 中文图片验证码程序。
  16. everedit 保存机器学习路径注意事项
  17. Pycharm一键选中多个东西(数据、函数等)进行修改、删除、替换等
  18. day05-python数字类型和列表
  19. 记一次面试准备(续上)
  20. 【STC头文件】STC8系列之STC8G头文件寄存器注释

热门文章

  1. vue.js嵌套路由-------由浅入深
  2. itextpdf 实现html转pdf中中文及图片base64的解决方法
  3. 如何删除在Github中创建的项目
  4. eclipse编译android工程提示无翻译字符串错误的忽略方法
  5. 吃的苦中苦,方为人上人!
  6. 关于QQ非会员发图限制
  7. Antlr中文文档初稿2(《ANTLR树分析器》)
  8. Unity实现IOS原生分享
  9. json格式的简单转换
  10. apache开源项目--PDFBox