Свертывание числовых значений

#r #variables #collapse

#r #переменные #свернуть

Вопрос:

У меня есть две переменные со следующими уровнями: 1, 2 и 3. Я усреднил их вместе, так что теперь уровни:

Уровни: 0 < .5 < 1 < 1.5 < 2 < 2.5 < 3

Однако мне нужно свернуть .5 с 1, 1.5 с 2 и 2.5 с 3. Было бы самым простым решением использовать factor recode? Синтаксис, похоже, не имеет смысла для меня.

Комментарии:

1. Я очень новичок в R. Я попробую эти предложения. Пожалуйста, не интерпретируйте мое отсутствие этого как неуважение.

Ответ №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
 

Другой вариант — явно свернуть коэффициент с помощью fct_collapse from forcats .

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