作者:村长 ,数据科学、指弹吉他及录音工程爱好者,浙大金融学博士在读,在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语言课堂
往期精彩:
公众号后台回复关键字即可学习
回复 爬虫 爬虫三大案例实战
回复 Python 1小时破冰入门
回复 数据挖掘 R语言入门及数据挖掘
回复 人工智能 三个月入门人工智能
回复 数据分析师 数据分析师成长之路
回复 机器学习 机器学习的商业应用
回复 数据科学 数据科学实战
回复 常用算法常用数据挖掘算法
本文由R语言中文社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- PostgreSQL11: psql 新增变量记录SQL语句的执行情况和错误
- Python 为什么只需一条语句“a,b=b,a”,就能直接交换两个变量?
- 全局变量,静态全局变量,局部变量,静态局部变量
- MySQL 建表语句转 PostgreSQL 建表语句全纪录
- Go语言开发-过程式编程-通信和并发语句-Select语句
- SQL语句优化之JOIN和LEFT JOIN 和 RIGHT JOIN语句的优化
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JSON 在线解析
在线 JSON 格式化工具
Base64 编码/解码
Base64 编码/解码