我有一个数据框,其中包含 0-60(包括 0 和 60)之间的随机值。这些值表示月份。我想将数据分为三个类别 (x<=6, 6< x <=12, x>12) 并生成一个新的单列,这将是一个包含 3 个值 (0,1,2) 的因子,分别表示垃圾箱。
我能够生成 3 列单热编码样式,但我想不出一种方法来生成具有 3 个因子的单列。
我有一个数据框,其中包含 0-60(包括 0 和 60)之间的随机值。这些值表示月份。我想将数据分为三个类别 (x<=6, 6< x <=12, x>12) 并生成一个新的单列,这将是一个包含 3 个值 (0,1,2) 的因子,分别表示垃圾箱。
我能够生成 3 列单热编码样式,但我想不出一种方法来生成具有 3 个因子的单列。
使用cut:
> df = data.frame(v=sample(1:60,1000,TRUE))
> df$cat = cut(df$v,c(-Inf,6,12,Inf))
> table(df$cat)
(-Inf,6] (6,12] (12, Inf]
97 92 811
此外,最好在 StackOverflow 上提出简单的 R 问题。