美文网首页数据-R语言-图表-决策-Linux-Python
R语言:data.table语句批量生成变量

R语言:data.table语句批量生成变量

作者: 天善智能 | 来源:发表于2019-02-18 10:54 被阅读24次

欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!

对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。

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

写在前面

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

问题提出

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

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

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

clinic <- clinic[, str_c(colnames(clinic)[2:23], "_xtrct") := lapply(.SD[, 2:23], str_match, "继发性醛固酮|醛固酮")]

再来看看运行结果:

上述结果可以看出,我们重新生成了很多被处理过的变量,都带有后缀_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语句批量生成变量

    欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞...

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

    欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞...

  • mysql批量插入和批量修改

    批量插入 当我们拿到数组之后,变量数组,按照批量插入的SQL语句构造SQL 批量更新 使用redis的时候,我们可...

  • mysql外键操作

    批量生成删除外键的语句:SELECT CONCAT('ALTER TABLE ',TABLE_SCHEMA,'.'...

  • R基础快速入门(2)

    文集地址 R语言快速入门 R语言变量 R语言中的变量可以存储原子向量,原子向量组或许多R对象的组合 注意:使用ca...

  • 【r<-包】R-数据操作(三):高效的data.table

    接【r<-基础】R-数据操作(二) 使用data.table包操作数据 data.table包提供了一个加强版的d...

  • 轻松绘制临床基线表Table 1

    Table 1是总结研究样本中变量组成及变量间关系的一张表。R语言可以通过几行代码快速生成Table 1。本期用到...

  • 批量插入sql语句拼接效率优化(即长字符串大量循环拼接)

    生成插入10000条的sql语句,字符串拼接需要20s? 使用一下方法生成批量插入sql语句: public fu...

  • R语言 变量

    变量为我们提供了程序可以操作的命名存储, R语言中的变量可以存储原子向量,原子向量组或许多Robject的组合。有...

  • R语言变量

    变量为我们提供了我们的程序可以操作的命名存储。 R语言中的变量可以存储原子向量,原子向量组或许多Robject的组...

网友评论

    本文标题:R语言:data.table语句批量生成变量

    本文链接:https://www.haomeiwen.com/subject/mjzoeqtx.html