r - 为年龄创建年龄范围 - R
问题描述
我有这个数据框:
> set.seed(100)
> df <- data.frame(Age = sample(18:70, 30, replace = TRUE),
Sex = sample(0:1, 30, replace =TRUE),
stringsAsFactors = FALSE)
> df
Age Sex
1 34 0
2 31 1
3 47 0
4 20 1
5 42 1
6 43 1
7 61 0
8 37 1
9 46 1
10 27 0
11 51 0
12 64 1
13 32 1
14 39 1
15 58 1
16 53 0
17 28 1
18 36 1
19 37 0
20 54 0
21 46 0
22 55 0
23 46 0
24 57 0
25 40 1
26 27 0
27 58 0
28 64 0
29 47 1
30 32 0
我想用这个范围为每个年龄创建另一个年龄范围:
> df_range <- data.frame(Age_Range = c("Lower than 26", "26 to 30", "31 to 35", "36 to 40", "41 to 45", "46 to 50", "51 to 55", "56 to 60", "61 to 65", "More than 65"),
stringsAsFactors = FALSE)
> df_range
Age_Range
1 Lower than 26
2 26 to 30
3 31 to 35
4 36 to 40
5 41 to 45
6 46 to 50
7 51 to 55
8 56 to 60
9 61 to 65
10 More than 65
我知道我可以通过创建一个巨大的表来做到这一点,其中第一列包含所有可能的年龄(例如,-1000 到 1000 以避免异常值),第二列是每个年龄的范围,我也可以使用ifelse()
for每个范围。但是,没有更有效的方法吗?也许类似于 TRUE VLOOKUP 在 excel 中?
解决方案
要以均匀的范围切割,您可以使用
df$age_range = cut_width(df$Age,width=5,boundary=0)
推荐阅读
- python - 从多个熊猫系列创建数据框
- javascript - 打字稿错误无法调用可能未定义的对象
- python - 将 Symengine I 转换为 python 1j
- python - 在不使用熊猫的情况下以可重用代码提取巨大的 csv 日志文件的有效方法(无内存读取)?
- javascript - 为什么使用猫鼬回调会导致两次保存数据?
- powershell - 如何使用 Powershell 将换行符分隔的文本文件转换为 csv
- php - 使用 PHP 客户端通过 Google API 客户端刷新令牌时出现“unauthorized_client”错误?
- c++ - c++:从静态库中创建共享对象
- android-studio - 更新android studio:预览添加了很多阴影
- protocol-buffers - 由相同记录值的 protobuf 序列化产生的字符串/字节串是否总是相同的?