R 语言 因子

  • 因子

    因子是用于对数据进行分类并将其存储为级别的数据对象。它们可以存储字符串和整数。它们在唯一值数量有限的列中很有用。像“男”,“女”和“真”,“假”等。它们在统计建模的数据分析中很有用。通过将向量作为输入,使用factor()函数创建因子。
     
    # Create a vector as input.
    data <- c("East","West","East","North","North","East","West","West","West","East","North")
    
    print(data)
    print(is.factor(data))
    
    # Apply the factor function.
    factor_data <- factor(data)
    
    print(factor_data)
    print(is.factor(factor_data))
    
    尝试一下
    当我们执行以上代码时,它产生以下结果-
     
    [1] "East"  "West"  "East"  "North" "North" "East"  "West"  "West"  "West"  "East" "North"
    [1] FALSE
    [1] East  West  East  North North East  West  West  West  East  North
    Levels: East North West
    [1] TRUE
    
  • 数据框架中的因子

    在创建带有一列文本数据的任何数据框时,R会将文本列视为分类数据并在其上创建因子。
     
    # Create the vectors for data frame.
    height <- c(132,151,162,139,166,147,122)
    weight <- c(48,49,66,53,67,52,40)
    gender <- c("male","male","female","female","male","female","male")
    
    # Create the data frame.
    input_data <- data.frame(height,weight,gender)
    print(input_data)
    
    # Test if the gender column is a factor.
    print(is.factor(input_data$gender))
    
    # Print the gender column so see the levels.
    print(input_data$gender)
    
    尝试一下
    当我们执行以上代码时,它产生以下结果-
     
      height weight gender
    1    132     48   male
    2    151     49   male
    3    162     66 female
    4    139     53 female
    5    166     67   male
    6    147     52 female
    7    122     40   male
    [1] TRUE
    [1] male   male   female female male   female male  
    Levels: female male
    
  • 更改级别顺序

    可以通过以新的级别顺序再次应用因子函数来更改因子中级别的顺序。
    
    data <- c("East","West","East","North","North","East","West",
       "West","West","East","North")
    # Create the factors
    factor_data <- factor(data)
    print(factor_data)
    
    # Apply the factor function with required order of the level.
    new_order_data <- factor(factor_data,levels = c("East","West","North"))
    print(new_order_data)
    
    尝试一下
    当我们执行以上代码时,它产生以下结果-
    
     [1] East  West  East  North North East  West  West  West  East  North
    Levels: East North West
     [1] East  West  East  North North East  West  West  West  East  North
    Levels: East West North
    
  • 产生因子水平

    我们可以使用gl()函数生成因子水平。它以两个整数作为输入,指示每个级别多少个级别和多少次。
    句法
    
    gl(n, k, labels)
    
    以下是所用参数的描述-
    • n - 是给出级别数的整数。
    • k - 是给出复制次数的整数。
    • labels - 是结果因子水平的标签向量。
    现场演示
    
    v <- gl(3, 4, labels = c("Tampa", "Seattle","Boston"))
    print(v)
    
    尝试一下
    当我们执行以上代码时,它产生以下结果-
    
    Tampa   Tampa   Tampa   Tampa   Seattle Seattle Seattle Seattle Boston 
    [10] Boston  Boston  Boston 
    Levels: Tampa Seattle Boston