data.frame 段的连续编号
Consecutive numbering of data.frame segments
我想为 data.frame 的片段分配连续的数字。我这样试过:
library(plyr)
ex1 <- mtcars
ehh <- ddply(.data=ex1, .variables=c("cyl"), transform, brx_j = c(1:nrow(cyl)))
但这是 data.frame(list(mpg = c(22.8, 24.4, 22.8, 32.4, 30.4, 33.9, 21.5, :
参数表示不同的行数:11、0"。
我这里有什么错误?
我们需要 seq_along
而不是 1:nrow
,因为 'cyl' 是单列而不是 data.frame
。
ddply(.data=ex1, .variables=c("cyl"), transform, brx_j = seq_along(cyl))
和 dplyr
一起,有 row_number()
函数来获取按 'cyl' 分组后的序列。
library(dplyr)
ex1 %>%
group_by(cyl) %>%
mutate(brx_j = row_number())
这也适用(基础 R):
ex1$brx_j <- ave(1:nrow(ex1), ex1$cyl, FUN=seq_along)
ex1[order(ex1$cyl),]
我想为 data.frame 的片段分配连续的数字。我这样试过:
library(plyr)
ex1 <- mtcars
ehh <- ddply(.data=ex1, .variables=c("cyl"), transform, brx_j = c(1:nrow(cyl)))
但这是 data.frame(list(mpg = c(22.8, 24.4, 22.8, 32.4, 30.4, 33.9, 21.5, : 参数表示不同的行数:11、0"。
我这里有什么错误?
我们需要 seq_along
而不是 1:nrow
,因为 'cyl' 是单列而不是 data.frame
。
ddply(.data=ex1, .variables=c("cyl"), transform, brx_j = seq_along(cyl))
和 dplyr
一起,有 row_number()
函数来获取按 'cyl' 分组后的序列。
library(dplyr)
ex1 %>%
group_by(cyl) %>%
mutate(brx_j = row_number())
这也适用(基础 R):
ex1$brx_j <- ave(1:nrow(ex1), ex1$cyl, FUN=seq_along)
ex1[order(ex1$cyl),]