专栏首页生物信息与临床医学专栏R语言入门之变量重编码与重命名

R语言入门之变量重编码与重命名

第一部分 变量重编码

在很多时候,我们需要对数据进行分类,比如根据血糖值将患者分成糖尿病组与非糖尿病组,亦或者按照年龄将样本分为老年人,中年人和青年人等等,这些就需要我们对数据进行重新编码。

# 创建新的变量和数据集
x1 <- c(1,2,3,4,5) # 向量x1
x2 <- c(1,4,9,16,25) # 向量x2
age <- c(68,25,39,76,52) # 向量age
sex <- c(0,1,1,0,1) # 向量sex
mydata <- data.frame(x1,x2,age,sex) # 用向量构建新的数据框
 
# 按照年龄创建两个分类
mydata$agecat1 <- ifelse(mydata$age > 65,
c("older"), c("younger")) # 大于65岁为老年组,其余为青年组
mydata #查看数据

# 在R中我们通常用[]来对数据进行索引
# 按照年龄创建3个类
attach(mydata) # 固定数据
mydata$agecat2[age > 75] <- "Elder" # 将年龄大于75岁的设为老年组
mydata$agecat2[age > 45 & age <= 75] <- "Middle Aged" # 年龄在45~75设为中年组
mydata$agecat2[age <= 45] <- "Young" # 年龄在45岁以下的设为青年组
mydata # 查看数据
detach(mydata) # 解固定数据

关于如何在R中进行数据的索引,我会在以后的内容中和大家详细介绍,先掌握上面的索引方式即可。

第二部分 变量重命名

在R中你既可以采用编程的方式对变量进行重命名,也可以采用像SPSS那种的交互方式来修改变量名,这里推荐使用编程的方式来对变量进行重命名。

# 使用rename()函数重命名
library(reshape) # 加载reshape包
# 创建新的变量
x1 <- c(1,2,3,4,5) # 向量x1
x2 <- c(1,4,9,16,25) # 向量x2
age <- c(68,25,39,76,52) # 向量age
sex <- c(0,1,1,0,1) # 向量sex
mydata <- data.frame(x1,x2,age,sex) # 用向量构建新的数据框

# 查看数据框的列名
names(mydata)
# [1] "x1"  "x2"  "age" "sex"
# mydata <- rename(mydata, c(oldname="newname")) # 第一个参数是数据框的名字,第二个参数是一个向量,其中等号左侧是旧的变量名,右侧是新的变量名(需用引号)
mydata <- rename(mydata, c(x1="ID"))names(mydata)#[1] "ID"  "x2"  "age" "sex"

# 当然你也可以直接使用names()这个函数来对变量重命名
names(mydata) <- c("ID","y","age","sex")
names(mydata)#[1] "ID"  "y" "age"   "sex"
 

关于变量重编码和重命名的内容现已讲解完毕,其中重编码部分的内容相对比较困难,需要大家勤加联系才能熟练掌握!

本文分享自微信公众号 - 生信与临床(cll-15151929371),作者:米老鼠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R语言入门之数据的索引

    ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍在任何编程语言的学习中,数据的索引都是最基本且重要的技能,它是我们熟练进行数据管理和统计分析的基础,今天我将和大家简...

    生信与临床
  • R语言进阶之广义线性回归

    广义线性回归是一类常用的统计模型,在各个领域都有着广泛的应用。今天我会以逻辑回归和泊松回归为例,讲解如何在R语言中建立广义线性模型。

    生信与临床
  • R语言进阶之判别分析

    R语言的“MASS“包是一个十分强大的统计包,可以进行各种统计分析,我也将围绕它来介绍判别分析。”MASS“包既可以进行线性判别,也可以进行二次判别。除非指定先...

    生信与临床
  • 关于kubernetes垃圾回收那点事

    使用kubernetes的过程中,为了保持磁盘的空间在一个合理的使用率,kubele提供了垃圾回收机制,kubelet的垃圾回收机制分为镜像的回收和contai...

    聂伟星
  • 聊聊sharding-jdbc的AbstractDataSourceAdapter

    本文主要研究一下sharding-jdbc的AbstractDataSourceAdapter

    codecraft
  • javascript写在head和body里的区别

    2、一般这样写:;如果这样写:<script language="javascript">是不标准的,IE能认,但是别的就不知道了。

    幽鸿
  • 聊聊sharding-jdbc的AbstractDataSourceAdapter

    本文主要研究一下sharding-jdbc的AbstractDataSourceAdapter

    codecraft
  • 【没落的985/211】Python爬取知乎8万字回答进行高校分析

    最近知乎一个“有哪些较原来没落的985/211院校?”的问题引起了很多人的关注,回答者各种分析,但是究竟哪些学校是公认最没落的却没有定论

    行哥玩Python
  • 今天刚上手爬虫,当然要从最简单的开始啦,验证一下所学的知识

    很多免费的资源只能看但是不提供下载,今天我们以小说为例教你如何把互联网上只能看不能下载的东西给下载下来

    松鼠爱吃饼干
  • Nmap之数据库渗透 原

    其中,mysqluser指定目标数据库账号,mysqlpass指定目标数据库密码,如果密码为空则不填写任何东西。

    青木

扫码关注云+社区

领取腾讯云代金券