我试图获取按变量分组的数字行指示符,以用作连接到以后数据集的一个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
答案 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())