【问题标题】:Collapsing numeric values折叠数值
【发布时间】:2021-04-08 12:53:25
【问题描述】:

我有两个具有以下级别的变量:1、2 和 3。我将它们平均在一起,所以现在级别是:

级别:0

但是,我需要用 1 折叠 0.5、用 2 折叠 1.5 和用 3 折叠 2.5。最简单的解决方案是使用因子重新编码吗?语法对我来说似乎没有意义。

【问题讨论】:

标签: r variables collapse


【解决方案1】:

你似乎有一个有序的因素。

x <- factor(c(.5, 1, 1.5, 2, 2.5, 3), ordered = TRUE)
x

#[1] 0.5 1   1.5 2   2.5 3  
#Levels: 0.5 < 1 < 1.5 < 2 < 2.5 < 3

您可以将它们转换为数字,并使用ceiling 将 0.5 与 1、1.5 与 2 组合等等。

y <- factor(ceiling(as.numeric(as.character(x))), ordered = TRUE)
y
#[1] 1 1 2 2 3 3
#Levels: 1 < 2 < 3

另一种选择是使用来自forcatsfct_collapse 显式折叠因子。

y <- forcats::fct_collapse(x, "1" = c("0.5", "1"), 
                              "2" = c("1.5", "2"), 
                              "3" = c("2.5", "3"))

【讨论】:

    猜你喜欢
    • 2021-03-17
    • 1970-01-01
    • 2014-05-22
    • 2016-10-26
    • 1970-01-01
    • 2017-01-03
    • 2018-11-20
    • 2023-03-25
    • 2017-03-10
    相关资源
    最近更新 更多