美文网首页
R语言: factor

R语言: factor

作者: LET149 | 来源:发表于2023-07-14 09:28 被阅读0次

    1. 创建因子

    factor_name <- factor(vector, levels=, labels=, ordered=)

      1. vector: 用来指定生成因子的顺序
      1. levels: 用来指定前面vector中生成因子后的levels和其顺序,函数会自动识别,但为了和之后的labels联用,这里要明确指定
      1. labels=: 给以上的levels赋予新的名称
      1. ordered=: 逻辑词,设置是否是有序因子

    1.1 创建有序因子

    > sex <- factor(c('f','m','f','f','m'),levels=c('f','m'),labels=c('female','male'),ordered=TRUE)
    
    > sex
    [1] female male   female female male  
    Levels: female < male
    
    > is.ordered(sex)
    [1] TRUE
    

    1.2 创建无序因子

    > sex <- factor(c('f','m','f','f','m'),levels=c('f','m'),labels=c('female','male'),ordered=FALSE)
    
    > sex
    [1] female male   female female male  
    Levels: female male
    
    > is.ordered(sex)
    [1] FALSE
    
    > ordered(sex)
    [1] female male   female female male  
    Levels: female < male
    

    is.ordered() 用来检测是否是有序因子
    ordered() 用来将无序因子有序化,出现在后面的因子其level较高

    2. 查看因子是否有序

    is.ordered()

    3. 将因子有序化

    factor_name_new <- ordered(factor_name, levels=)
    levels= : 向量,用来指定因子的顺序;其中的levels总数必须和因子中的相同,否则缺失的因子中level将会办成NA;此向量中的level从前到后,顺序递增

    将无序因子变为有序因子,并指定因子的顺序

    > kk <- as.factor(c(2,4,7,1,3))
    > kk
    [1] 2 4 7 1 3
    Levels: 1 2 3 4 7
    > is.ordered(kk)
    [1] FALSE
    
    > kk <- ordered(kk, levels=c(7,3,4,1,2))
    > kk
    [1] 2 4 7 1 3
    Levels: 7 < 3 < 4 < 1 < 2
    > is.ordered(kk)
    [1] TRUE
    

    4. gl()

    用来创建因子
    gl(n=, k=, length=, labels=, ordered=)

    • n=: 因子的level个数
    • k=: 每个level重复数
    • length=: 因子长度,默认为n*k,可以指定比n*k小或者大;如果比n*k小,则从前到后截取此长度的因子;如果比n*k大,则会重复因子直到达到需要的长度
    • labels=: 每个level对应的标签
    • ordered=: 是否是有序因子,默认为FALSE

    5. cut()

    相关文章

      网友评论

          本文标题:R语言: factor

          本文链接:https://www.haomeiwen.com/subject/hvvnjktx.html