在 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
我想我已经通过使用完成了我想做的事情的一半(只需要一点帮助来完成第二部分):
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