在R中重新调整和重新排序因子

时间:2015-09-16 19:00:46

标签: r

我有几千个案例,需要用每个id变量的折叠版本替换订单。 has列是我正在使用的,而want列是我想要的样子。任何想法都会非常感激。

{{1}}

2 个答案:

答案 0 :(得分:4)

你所要做的就是按组排名。这是一个简单的尝试

PARSEFACEBOOKUTILSV4.framework
FBSDKCOREKIT.framework
FBSDKLOGINKIT.framework
BOLTS.framework

您可能需要查看ave(have, id, FUN = rank) - 1L ## [1] 0 1 2 0 1 0 1 2 3 0 1 2 3 4 处理重复项处理的不同变体(特别是?rank

答案 1 :(得分:2)

你可以使用dplyr,并给每个rownumber - 1:

library(dplyr)
as.data.frame(reorder) %>% group_by(id) %>%
                           mutate(want2 = row_number() - 1)

Source: local data frame [14 x 4]
Groups: id [4]

      id  have  want want2
   (dbl) (dbl) (dbl) (dbl)
1      1     0     0     0
2      1     1     1     1
3      1     3     2     2
4      2     0     0     0
5      2     2     1     1
6      3     0     0     0
7      3     1     1     1
8      3     4     2     2
9      3     6     3     3
10     4     1     0     0
11     4     3     1     1
12     4     4     2     2
13     4     5     3     3
14     4     7     4     4