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

栏目: R语言 · 发布时间: 5年前

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

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

写在前面

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

问题提出

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

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

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

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

再来看看运行结果:

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

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

往期精彩:

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

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

回复  爬虫             爬虫三大案例实战

回复  Python        1小时破冰入门

回复  数据挖掘      R语言入门及数据挖掘

回复  人工智能      三个月入门人工智能

回复  数据分析师   数据分析师成长之路 

回复  机器学习      机器学习的商业应用

回复  数据科学      数据科学实战

回复  常用算法     

常用数据挖掘算法

本文由R语言中文社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。

转载、引用前需联系作者,并署名作者且注明文章出处。

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Deep Learning

Deep Learning

Ian Goodfellow、Yoshua Bengio、Aaron Courville / The MIT Press / 2016-11-11 / USD 72.00

"Written by three experts in the field, Deep Learning is the only comprehensive book on the subject." -- Elon Musk, co-chair of OpenAI; co-founder and CEO of Tesla and SpaceX Deep learning is a for......一起来看看 《Deep Learning》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具