【发布时间】:2020-02-15 01:58:38
【问题描述】:
我想使用查找表创建一个新变量。数据框如下所示:
id sex age length
1 Female 1 45
2 Female 2 54
3 Female 3 56
4 Female 4 60
5 Female 5 60
6 Female 6 61
7 Female 7 63
8 Male 1 55
9 Male 2 54
10 Male 3 58
11 Male 4 61
12 Male 5 65
13 Male 6 63
14 Male 7 65
15 Male 8 67
16 Male 9 68
17 Male 10 69
查找表如下所示
sex age length
Female 1 50
Female 2 53
Female 3 56
Female 4 58
Female 5 60
Female 6 61
Female 7 63
Male 1 50
Male 2 54
Male 3 57
Male 4 60
Male 5 62
Male 6 63
Male 7 65
Male 8 66
Male 9 67
Male 10 69
我想新建一个变量growth.rate,有两个级别:“Normal”和“Low”,所以最终的数据框是这样的,
id sex age length growth.rate
1 Female 1 45 Low
2 Female 2 54 Normal
3 Female 3 56 Low
4 Female 4 60 Normal
5 Female 5 60 Low
6 Female 6 61 Low
7 Female 7 63 Low
8 Male 1 55 Normal
9 Male 2 54 Low
10 Male 3 58 Normal
11 Male 4 61 Normal
12 Male 5 65 Normal
13 Male 6 63 Low
14 Male 7 65 Low
15 Male 8 67 Normal
16 Male 9 68 Normal
17 Male 10 69 Low
在此示例中,id 1 的growth.rate 为“Low”,因为她的长度低于查找表中针对 1 岁女性的值。
相反,id 2 的 growth.rate 为“正常”,因为她的长度高于查找表中 2 岁女性的值。
我试图调整这个解决方案但没有成功Getting contextstack overflow error - too many nested ifelse statements within for loop?
非常感谢任何帮助
【问题讨论】: