折叠数值

问题描述

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

级别:0

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

解决方法

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

Just

您可以将它们转换为数字并使用 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 将 0.5 与 1、1.5 与 2 等组合起来。

ceiling

另一种选择是使用 y <- factor(ceiling(as.numeric(as.character(x))),ordered = TRUE) y #[1] 1 1 2 2 3 3 #Levels: 1 < 2 < 3 中的 fct_collapse 显式折叠因子。

forcats