在 R 中满足约束条件时分配一个因子水平

Assign a factor level when constraints are met in R

我想我已经通过使用完成了我想做的事情的一半(只需要一点帮助来完成第二部分):

clients[which(clients$Age >= 18 & clients$Age <= 24),]

这会将 18 岁到 24 岁(含)的所有人分组,并列出与我的数据框中匹配的所有行。

我只想更进一步,为与此约束匹配的每一行分配一个因子变量水平;说 'I'。然后 25 - 34 岁的每个人都可以成为 'II' 的一部分,35 - 44 岁的人可以成为 'III' 的一部分,等等

最终目标是让我更容易地绘制出不同年龄组的频率并排在一起 - 我觉得让它们在一个因子变量中的每个独特水平将是一个好的开始。

有什么想法吗?

您可以使用 cut 一次指定多个级别:

cut( clients$Age,
     breaks = c( 18, 25, 35, 45 ),
     include.lowest = TRUE,
     labels = c( "I", "II", "III" ) )

一个例子,使用 18 到 45 之间的每个整数。

cut( seq.int( 18, 45, 1 ),
     breaks = c( 18, 25, 35, 45 ),
     include.lowest = TRUE,
     labels = c( "I", "II", "III" ) )
 [1] I   I   I   I   I   I   I   I   II  II  II  II  II  II  II  II  II  II  III III III III
[23] III III III III III III
Levels: I II III