R语言变量级别的数据处理操作

 更新时间:2021年04月17日 10:04:41   作者:「已注销」  
这篇文章主要介绍了R语言变量级别的数据处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

变量级别的数据处理无非是对变量的增删改查。

即增加新的变量

R语言中,增加一个新变量形式语句如下:

变量名 <- 表达式

表达式可以包含多种运算符和函数。常见运算符包括:

运算符 描述
+
-
*
/
^或** 求幂
x%%y 求余(x mod y)。5%%2的结果为1。
x%/%y 整数除法。5%/%2的结果为2。

示例:

#创建一个数据框
mydata <- data.frame(x1 = c(2,2,6,4),
+                      x2 = c(3,4,2,8))
mydata
  x1 x2
  2  3
  2  4
  6  2
  4  8
#绑定mydata
attach(mydata)
#为mydata数据框增加一个sum变量
mydata$sum <- x1 + x2
#为mydata数据框增加一个mean变量
mydata$mean <- (x1+x2)/2
mydata
  x1 x2 sum mean
  2  3   5  2.5
  2  4   6  3.0
  6  2   8  4.0
  4  8  12  6.0
#解除绑定
detach(mydata)
#用transform函数可以达到同样效果
mydata <- transform(mydata,sumx = x1+x2,meanx = (x1+x2)/2)
mydata
  x1 x2 sum mean sumx meanx
  2  3   5  2.5    5   2.5
  2  4   6  3.0    6   3.0
  6  2   8  4.0    8   4.0
  4  8  12  6.0   12   6.0

attach与detach函数用于绑定和解除数据集,以简化数据处理过程。如果不使用二者,生成sum变量,则每个变量名之前需要加上数据集名称+$符号。

使用transform函数,语法格式为transform(数据集名称,变量名=表达式)

随着R语言的发展出现了tidyverse系列包可以进行完整的数据分析流程。本基础教程以传统方法为主,tidyverse系列日后涉及。

即删除不需要的变量或选择需要的变量。

#将R语言自带鸢尾花数据集赋值给data
data <- iris
#查看前5行
head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
          5.1         3.5          1.4         0.2  setosa
          4.9         3.0          1.4         0.2  setosa
          4.7         3.2          1.3         0.2  setosa
          4.6         3.1          1.5         0.2  setosa
          5.0         3.6          1.4         0.2  setosa
          5.4         3.9          1.7         0.4  setosa
#选择第3到5的变量,即删除1到2的变量
data <- data[,c(3:5)]
#查看新的数据
head(data)
  Petal.Length Petal.Width Species
          1.4         0.2  setosa
          1.4         0.2  setosa
          1.3         0.2  setosa
          1.5         0.2  setosa
          1.4         0.2  setosa
          1.7         0.4  setosa
#生成一个包含变量名字的向量vars
vars <- c('Sepal.Width','Petal.Length')
#将R语言自带鸢尾花数据集赋值给data
data <- iris
#从data数据集选择包含vars内变量的数据
data <- data[vars]
#查看前5行
head(data)
  Sepal.Width Petal.Length
         3.5          1.4
         3.0          1.4
         3.2          1.3
         3.1          1.5
         3.6          1.4
         3.9          1.7
#将R语言自带鸢尾花数据集赋值给data
data <- iris
#使用%in%判断data内的变量名是否为Sepal.Length,是返回TRUE,否则返回FALSE。赋值给myvars
myvars <- names(data)%in%c('Sepal.Length')
#!myvars反向选择,生成不包含Sepal.Length变量的数据集newdata
newdata <- data[!myvars]
#查看前5行
head(newdata)
  Sepal.Width Petal.Length Petal.Width Species
         3.5          1.4         0.2  setosa
         3.0          1.4         0.2  setosa
         3.2          1.3         0.2  setosa
         3.1          1.5         0.2  setosa
         3.6          1.4         0.2  setosa
         3.9          1.7         0.4  setosa

包括对变量的值的修改和对变量的类型的修改。两者有时存在某些共变,如连续变量离散化就是为将连续变量类型转化为分类变量(因子)类型。

变量的值的修改(重编码)包括连续变量离散化、分类变量取值合并。

可以使用R中的一个或多个逻辑运算符重编码数据。逻辑运算符表达式返回TRUE或FALSE。

运算符 描述
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
!x 非x
x竖线y x或y
x&y x和y
isTRUE(x) 测试x是否为TRUE

x竖线y为x|y,本文章编码显示问题才用竖线代替|

变量修改的语法为variable[condition]<-expression

其中,variable为变量名,condition为条件,expression为赋值。

在condition的值为TRUE时执行赋值。

示例:

#首先生成一个数据框
age <- c(15,18,59,48,26,58,74,85,99,52)
sex <- c(1,2,1,2,1,1,1,2,2,1)
ship <- data.frame(age,sex)
ship
   age sex
   15   1
   18   2
   59   1
   48   2
   26   1
   58   1
   74   1
   85   2
   99   2
  52   1
#将年龄取值99视为缺失值NA
ship$age[ship$age==99] <- NA
#将年龄大于75的取值为Elder,赋值给agecat变量。
ship$agecat[ship$age>75] <- 'Elder'
#将年龄介于55-75之间的取值为Middle Aed,赋值给agecat变量。
ship$agecat[ship$age>=55 & ship$age<=75] <- 'Middle Aged'
#将年龄小于55的取值为Young,赋值给agecat变量。
ship$agecat[ship$age<55] <- 'Young'
ship
   age sex      agecat
   15   1       Young
   18   2       Young
   59   1 Middle Aged
   48   2       Young
   26   1       Young
   58   1 Middle Aged
   74   1 Middle Aged
   85   2       Elder
   NA   2        <NA>
  52   1       Young
#合并分类变量取值
#将agecat为Elder的取值为TRUE,赋值给isElder变量
ship$isElder[ship$agecat=='Elder'] <- TRUE
#将agecat不是Elder的取值为FALSE,赋值给isElder变量
ship$isElder[ship$agecat !='Elder'] <- FALSE
ship
   age sex      agecat isElder
   15   1       Young   FALSE
   18   2       Young   FALSE
   59   1 Middle Aged   FALSE
   48   2       Young   FALSE
   26   1       Young   FALSE
   58   1 Middle Aged   FALSE
   74   1 Middle Aged   FALSE
   85   2       Elder    TRUE
   NA   2        <NA>      NA
  52   1       Young   FALSE
判断 转换
is.numeric() as.numeric()
is.character() as.character()
is.factor() as.factor()

某些R函数需要指定数据集类型,as.datatype()函数可以使数据转换为所要求的的格式。

查看变量类型,使用上述表格中判断函数或str()函数。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • R语言 实现在循环中输出图片的操作

    R语言 实现在循环中输出图片的操作

    这篇文章主要介绍了R语言 实现在循环中输出图片的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • R语言常用函数总结梳理(基本对象字符处理 数学 统计)

    R语言常用函数总结梳理(基本对象字符处理 数学 统计)

    这篇文章主要介绍了R语言常用函数总结梳理(基本对象字符处理 数学 统计),有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • 基于R语言 数据检验详解

    基于R语言 数据检验详解

    这篇文章主要介绍了R语言数据检验的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • R语言之xlsx包读写Excel数据的操作

    R语言之xlsx包读写Excel数据的操作

    这篇文章主要介绍了R语言之xlsx包读写Excel数据的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • R语言数值取消科学计数法表示的操作

    R语言数值取消科学计数法表示的操作

    这篇文章主要介绍了R语言数值取消科学计数法表示的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • R语言绘制corrplot相关热图分析美化示例及详细图解

    R语言绘制corrplot相关热图分析美化示例及详细图解

    这篇文章主要为大家介绍了R语言corrplot相关热图分析美化示例及详细图解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 详解R语言实现前向逐步回归(前向选择模型)

    详解R语言实现前向逐步回归(前向选择模型)

    本文主要介绍了详解R语言实现前向逐步回归,从实现原理开始,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • RStudio中如何更改R包安装位置浅析

    RStudio中如何更改R包安装位置浅析

    R语言提供了丰富的功能和扩展包来支持各种任务,默认R语言会将安装的扩展包存储在特定的目录中,有时我们希望将这个默认存储路径更改为其他位置,以便更好地组织和管理我们的包,这篇文章主要给大家介绍了关于RStudio中如何更改R包安装位置的相关资料,需要的朋友可以参考下
    2023-09-09
  • R语言常用两种并行方法之parallel详解

    R语言常用两种并行方法之parallel详解

    这篇文章主要为大家介绍了R语言常用两种并行方法之parallel方法的详解,有需要的朋友可以借鉴C参考下,希望能够有所帮助,祝大家多多进步早日甚至加薪
    2021-11-11
  • R语言绘制Radar chart雷达图

    R语言绘制Radar chart雷达图

    这篇文章主要为大家介绍了R语言绘制Radar chart雷达图的方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-02-02

最新评论