连续编号的data.frame段

时间:2016-11-28 16:08:51

标签: r dataframe plyr

我想将连续数字分配给data.frame的段。我试过这样:

library(plyr)
ex1 <- mtcars
ehh <- ddply(.data=ex1, .variables=c("cyl"), transform, brx_j = c(1:nrow(cyl)))

但它是“data.frame中的错误(列表(mpg = c(22.8,24.4,22.8,32.4,30.4,33.9,21.5,:   参数意味着不同的行数:11,0“。

我的错误是什么?

2 个答案:

答案 0 :(得分:1)

我们需要seq_along代替1:nrow作为&#39; cyl&#39;是一列而不是data.frame

ddply(.data=ex1, .variables=c("cyl"), transform, brx_j = seq_along(cyl))

dplyrrow_number()功能可以在按&#39; cyl&#39;分组后获取序列。

library(dplyr)
ex1 %>%
     group_by(cyl) %>% 
     mutate(brx_j = row_number())

答案 1 :(得分:1)

这也可以(基础R):

ex1$brx_j <- ave(1:nrow(ex1), ex1$cyl, FUN=seq_along)
ex1[order(ex1$cyl),]