通过分组计算行数

时间:2018-02-15 21:11:59

标签: r data-manipulation

我试图获取按变量分组的数字行指示符,以用作连接到以后数据集的一个keyid。

library("tidyverse")

x<- c("age", "credit", "vehicle_age", "rba", "rba", "rba")
x1 <- c(6, 27, 28, 2199, 20130, 30000)
df<- cbind(x, x1)

这是我用来尝试完成此操作的代码:

df <- df %>% group_by(x, x1) %>% mutate("segment" = count(x1))

这是我得到的错误:

Error in UseMethod("group_by_") : no applicable method for 'group_by_' applied to an object of class "c('matrix', 'character')"

这最终是我想要的样子。

x1              x2    segment
age             6     1
credit          27    1
vehicle_age     28    1
rba             2199  1
rba             20130 2
rba             30000 3

2 个答案:

答案 0 :(得分:0)

您得到的错误是因为dplyr适用于数据框,而不适用于矩阵。要使每个组按顺序排列到组中的总数,请使用n()函数:

df %>% as.data.frame() %>% group_by(x) %>% mutate(segment = 1:n())

答案 1 :(得分:0)

您不需要使用计数。

df %>% data.frame %>% group_by(x) %>% mutate(segment = row_number())