zoukankan      html  css  js  c++  java
  • R中Factor类型选取子集

    Factor是R中的一种数据类型,个人理解就是高级编程语言(C/C++,Python,PHP等)中的枚举

    选取Factor数组中的子集不像character,numeric那样直观,在这里记录选取方法,可能不是最简洁的,如果有,还请高手指点。

    主要思路:将factor转成character,然后按照character的方式选取子集

    看个例子:

    fv <- rep(c('a','b'),5)
    fv <- as.factor(fv)

    输出如下数据

     [1] a b a b a b a b a b
    Levels: a b

    现在,需要将fv的所有枚举取到,也就是'a'和'b'

    names(summary(fv))
    

    输出如下

    [1] "a" "b"
    

     通过下面的代码可以分别取到’a‘或’b‘的子集

    labels <- names(summary(fv))
    fv[fv == labels[1]]  # 选取a的子集
    fv[fv == labels[2]]  # 选取b的子集
    

    输出如下

    > fv[fv == labels[1]]  # 选取a的子集
    [1] a a a a a
    Levels: a b
    > fv[fv == labels[2]]  # 选取b的子集
    [1] b b b b b
    Levels: a b
    

    到这里,提供一种更为方便的思路:将factor转化成numeric后,可以按照numeric的方式选取子集。

    s <- as.factor(rep(c('a','b'),5))
    as.numeric(s)
    

    得到的数据如下:

    [1] 1 2 1 2 1 2 1 2 1 2
    

    第一种方法比较笨拙,建议使用第二种方法。

  • 相关阅读:
    大数据用户画像方法与实践(干货 转帖)
    前端学习之路
    MySQL学习记录
    Linux 运维之路
    Python学习之路
    NgRx/Store 4 + Angular 5使用教程
    CSS实现各种形状
    CSS3实现背景透明,文字不透明
    CSS实现网页背景图片自适应全屏
    使用Restify+superagent做数据转发
  • 原文地址:https://www.cnblogs.com/bourneli/p/2909752.html
Copyright © 2011-2022 走看看