【问题标题】:How can I swap the levels? [duplicate]如何交换级别? [复制]
【发布时间】:2021-05-29 17:52:32
【问题描述】:

我在 R 中有以下代码:

a <- c("No", "Yes", "No", "Yes", "Yes")
af <- as.factor(a)

然后

levels(af)

返回

[1]“否”“是”

问题是caret::confusionMatrix 将第一个因素视为积极因素,如果您不传递 positive 参数。

我怎样才能交换级别,使第一个是“是”?

【问题讨论】:

标签: r categorical-data r-factor


【解决方案1】:

使用factor()函数:

a <- c("No", "Yes", "No", "Yes", "Yes")
af <- factor(a, levels = c("Yes","No"))

【讨论】:

    【解决方案2】:

    使用forcats库

    library(forcats)
    a <- c("No", "Yes", "No", "Yes", "Yes")
    af <- as.factor(a)
    
    af
    [1] No  Yes No  Yes Yes
    Levels: No Yes
    
    fct_recode(af, Yes = "No", No = "Yes")
    [1] Yes No  Yes No  No 
    Levels: Yes No
    

    【讨论】:

    • 我认为这是不对的。您将所有值从 Yes 交换为 No,反之亦然。我想我想在Levels: 之后交换订单。我不想在物理上更改变量内的值
    • 好的,我误解了这个问题。
    • 我认为caret::confusionMatrix 以某种方式考虑了Levels: 中的顺序
    猜你喜欢
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    相关资源
    最近更新 更多