Самый простой способ - создать TYPE
с помощью cut
, который предназначен для объединения числовых переменных вместо factor
:
df <- data.frame(NID = 1:9,
PE = c(4L, 5L, 3L, 4L, 1L, 6L, 2L, 3L, 3L))
df$TYPE <- cut(df$PE, 3, labels = 1:3)
df
#> NID PE TYPE
#> 1 1 4 2
#> 2 2 5 3
#> 3 3 3 2
#> 4 4 4 2
#> 5 5 1 1
#> 6 6 6 3
#> 7 7 2 1
#> 8 8 3 2
#> 9 9 3 2
str(df)
#> 'data.frame': 9 obs. of 3 variables:
#> $ NID : int 1 2 3 4 5 6 7 8 9
#> $ PE : int 4 5 3 4 1 6 2 3 3
#> $ TYPE: Factor w/ 3 levels "1","2","3": 2 3 2 2 1 3 1 2 2
. Возможно, вам потребуется установить параметр breaks
к явному вектору разрывов вместо числа бинов, чтобы заставить его дискретизировать так, как вам нравится.
Примечание: использование чисел в качестве меток для факторов - это действительно плохая идея.Факторы внутренне представлены целыми числами, и если метки - это разные числа, вы можете получить вектор, который выглядит как один набор чисел, но ведет себя как и иногда превращается в другой, что приводит к большой путанице.