如何对数据框内特定组别中的每行进行自动编号?
- 内容介绍
- 文章标签
- 相关推荐
本文共计149个文字,预计阅读时间需要1分钟。
对数据进行处理,可以使用以下方法:- 使用ave函数:ave(df$cat, .(cat), mutate, id=seq_along(val))- 使用ddply和dplyr包:library(dplyr) df %>% group_by(cat) %>% mutate(id=row_number())- 使用plyr包:library(plyr) ddply(df, .(cat), mutate, id=seq_along(val))
使用ave,或: ddply_dplyr``data.table
df$num <- ave(df$val, df$cat, FUN = seq_along)
或者:
library(plyr)ddply(df, .(cat), mutate, id = seq_along(val))
或者:
library(dplyr)df %>% group_by(cat) %>% mutate(id = row_number())
或(最有效的内存,因为它通过引用分配DT):
library(data.table)DT <- data.table(df)DT[, id := seq_len(.N), by = cat]DT[, id := rowid(cat)]
本文共计149个文字,预计阅读时间需要1分钟。
对数据进行处理,可以使用以下方法:- 使用ave函数:ave(df$cat, .(cat), mutate, id=seq_along(val))- 使用ddply和dplyr包:library(dplyr) df %>% group_by(cat) %>% mutate(id=row_number())- 使用plyr包:library(plyr) ddply(df, .(cat), mutate, id=seq_along(val))
使用ave,或: ddply_dplyr``data.table
df$num <- ave(df$val, df$cat, FUN = seq_along)
或者:
library(plyr)ddply(df, .(cat), mutate, id = seq_along(val))
或者:
library(dplyr)df %>% group_by(cat) %>% mutate(id = row_number())
或(最有效的内存,因为它通过引用分配DT):
library(data.table)DT <- data.table(df)DT[, id := seq_len(.N), by = cat]DT[, id := rowid(cat)]

