我有一个具有以下格式的 Dataframe :
| 识别码|收入情况|年份|
| - -|- -|- -|
| 一个|100个|二○ ○ ○年|
| 2个|二百|二○ ○ ○年|
| 三个|三百|二○ ○ ○年|
| 四个|五百个|二OO一年|
| 五个|千|二OO一年|
| 六个|一千五百|二OO一年|
| 七个|万|二OO二年|
| 八个|一万五千|二OO二年|
| 九个|二万|二OO二年|
我想添加一个名为income_cat的列,它有三个可能的级别;“低”、“中”和“高”,这取决于收入是在该特定年份的下33%、中33%还是上33%。
| 识别码|收入情况|年份|收入类别|
| - -|- -|- -|- -|
| 一个|100个|二○ ○ ○年|低的|
| 2个|二百|二○ ○ ○年|中等的|
| 三个|三百|二○ ○ ○年|高的|
| 四个|五百个|二OO一年|低的|
| 五个|千|二OO一年|中等的|
| 六个|一千五百|二OO一年|高的|
| 七个|万|二OO二年|低的|
| 八个|一万五千|二OO二年|中等的|
| 九个|二万|二OO二年|高的|
我很难找到合适的方法来做到这一点,并将非常感谢任何建议!
5条答案
按热度按时间k97glaaz1#
p5fdfcr12#
这是你的第一个问题,所以我将破例,但是stackoverflow社区通常要求一些东西来处理。换句话说,我们至少需要一些代码。否则,你只需要让其他人为你做工作。这应该对你的情况有效。
请告诉我它是否有效。
odopli943#
下面是一个使用
data.table
的答案。从玩具数据开始:在对
by
year
进行分组时,我们可以使用data.table::fcase
和包含在基数R中的quantile
函数:第一次
57hvy0tb4#
创建于2022年11月30日,使用reprex v2.0.2
u0njafvf5#
我知道
year
是一个分组因子。这里是一个findInterval
的版本。我已经尝试重新创建你的 Dataframe 的想法,并添加了一些随机数据点到每个组-见最后的数据。数据