R语言 如何重命名因子水平

R语言 如何重命名因子水平

在这篇文章中,我们将介绍如何在R编程语言中重命名因子水平。

R语言中的因子变量是用分类变量来表示的,而分类变量是用不同的级别来表示的。每个独特的值都用一个独特的级别值来表示。R语言中的因子变量或向量可以用 factor() 方法来声明。

语法: factor(vec)

参数: vec – 矢量

因子的唯一水平可以通过level()方法提取,该方法以创建的因子向量为参数。它显示因子变量中的所有唯一条目。

语法: level(fac-vec)

参数: fac-vec – 要提取数值的因子向量

方法1:使用 基本的R方法

可以使用比较和索引操作符来重新命名因子水平。对现有的因子值进行比较,然后通过将其分配给一个新的值进行修改。这些修改是对现有因子向量进行的。遵循以下语法:

语法: level(fac-vec)[level(fac-vec)==old-val] <- new-val

参数: fac-vec – 要提取数值的因子向量

# declare a factor
val < - factor(c("Geeks", "For", "Geeks",
                 "Coding", "Fun"))
  
# printing the levels of factor variables
print("Levels of factor")
lvls < - levels(val)
print(lvls)
  
# renaming the factors
levels(val)[levels(val) == "Coding"] < - "Learning"
print("Modified Levels of factor")
lvls < - levels(val)
print(lvls)

输出

[1] "Levels of factor"
[1] "Coding" "For"    "Fun"    "Geeks" 
[1] "Modified Levels of factor"
[1] "Learning" "For"      "Fun"      "Geeks"  

list()方法也可以用来创建一个要创建的因子水平列表,然后可以重新赋值给新的值。然后,level()被重新赋值给这些新声明的值。这些改变是对原始因子向量的改变。使用这个方法可以重命名一个以上的因子。

list(new-fac=val = old-fac-val,..)

在list()方法中声明了新旧因子变量值的组合。

# declare a factor 
val <- factor(c("Geeks","For","Geeks",
                "Coding","Fun"))
  
# printing the levels of factor variables
print("Levels of factor")
lvls <- levels(val)
print(lvls)
  
# renaming the factors
levels(val) <- list("Learning"="Fun",
                    "Programming"="Coding")
print("Modified Levels of factor")
print(levels(val))

输出

[1] "Levels of factor"
[1] "Coding" "For"    "Fun"    "Geeks" 
[1] "Modified Levels of factor"
[1] "Learning"    "Programming"

一个因子变量的所有等级也可以用c()方法重新命名,以创建一个等级向量。然后,新创建的值被分配给一个因子变量。下面的代码片段说明了这个过程。

# declare a factor 
val <- factor(c("Geeks","For","Geeks",
                "Coding","Fun"))
  
# printing the levels of factor variables
print("Levels of factor")
lvls <- levels(val)
print(lvls)
  
# renaming the factors
levels(val) <- c("Hi","There",
                 "Welcome","Here")
print("Modified Levels of factor")
print(levels(val))

输出

[1] "Levels of factor"
[1] "Coding" "For"    "Fun"    "Geeks" 
[1] "Modified Levels of factor"
[1] "Hi"      "There"   "Welcome" "Here"  

方法2:使用revalue()方法

R中的plyr包是用来将数据分割开来,对其进行操作,并将其重新组合在一起。该包可以通过以下命令下载并安装到工作空间。

install.packages("plyr")

本软件包中的重值方法用于用新定义的值替换因子向量中的指定值。在这种情况下,因子变量的水平不会被修改,仍然是原始的。

语法: revalue(x, replace = NULL)

参数:

  • x – 因子向量
  • replace – 因子向量,新值为数值,旧值为名称。
# importing req libraries
library("plyr")
  
# declare a factor 
val <- factor(c("Geeks","For","Geeks",
                "Coding","Fun"))
  
# printing the levels of factor variables
print("Levels of factor")
lvls <- levels(val)
print(lvls)
  
# renaming the factors
revalue(val, c("Fun"= "Learning", "Coding"= "Programming"))
print("Modified Levels of factor")
print(levels(val))

输出

[1] "Levels of factor"
[1] "Coding" "For"    "Fun"    "Geeks"  
Geeks For Geeks Programming Learning
Levels:
[1] "Modified Levels of factor"
[1] "Coding" "For"    "Fun"    "Geeks" 

方法3:使用mapvalues()方法

R中plyr包中的mapvalues()方法被用来在因子向量中用新的数值替换指定的数值。这些变化不会保留在原始向量中。

语法: mapvalues(x, from, to)

参数:

  • x – 要修改的因子向量
  • from – 要替换的项目的一个向量
  • to – 替换值的一个向量
# importing req libraries
library("plyr")
  
# declare a factor 
val <- factor(c("Geeks","For","Geeks",
                "Coding","Fun"))
  
# printing the levels of factor variables
print("Levels of factor")
lvls <- levels(val)
print(lvls)
  
# renaming the factors
mapvalues(val, from = c("Fun","Coding"),
          to = c("Learning", "Programming"))
print("Modified Levels of factor")
print(levels(val))

输出

[1] "Levels of factor"
[1] "Coding" "For"    "Fun"    "Geeks"  
Geeks For Geeks Programming Learning
Levels:
[1] "Modified Levels of factor"
[1] "Coding" "For"    "Fun"    "Geeks" 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程