【问题标题】:R - obtaining the levels in a factorR - 获得一个因子的水平
【发布时间】:2014-08-07 22:47:48
【问题描述】:

我正在尝试编写一个循环,该循环需要能够识别因子中的级别。我正在努力获得关卡

例如:

x<-c("male","female","male","male")
x<-as.factor(x)

我想要达到的目标是 例如

>x.level[1]
male 
>x.level[2]
female

如何创建 x.level?

【问题讨论】:

  • 试试x.level &lt;- levels(x)
  • 阅读帮助文件通常很有帮助。在?factor 的“另见”部分中,它显示“‘levels’和‘nlevels’用于访问关卡”

标签: r r-factor


【解决方案1】:

你的意思是这样的......?

 x <- relevel(x, ref="male")  # use `relevel` just to reorder levels
> x.level <- levels(x)
> x.level[1]
[1] "male"
> x.level[2]  
[1] "female"

【讨论】:

  • 好的,谢谢!!再多一个查询 - 如果有两个以上的级别(例如蓝色、红色、黄色)并且我想根据自己的喜好重新排序(例如红色、蓝色、黄色),我该怎么做/
  • @Si 通常,新问题应该这样发布(如果它们尚不存在(例如,here 和here)在 SO 上)。您可以使用levels arg 到factor 来指定级别顺序。例如:factor(c('red', 'yellow', 'blue'), c('yellow', 'blue', 'red')).
【解决方案2】:

对于 ffdf,它略有不同。尽管在其上下文中未在此处询问,但我认为它可能会帮助处理大数据的人(可以适合 ffdf)。它的长度()将为您提供级别总数。由于 ffdf 目前还没有将 char 当作 char 来处理,因此这是跟踪转换为可能占用内存的因子级别的 chr 数量的最佳方法。

虚拟(myffdf$factorcolumn)$Levels

【讨论】:

    猜你喜欢
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多