我已设法为我的数据框添加一列排名
lowest.mortality.upper<-nrow(lowest.mortality)
## Add a ranking column
lowest.mortality$ranking<-c(1:lowest.mortality.upper)
但是现在我必须根据另一个列状态对更大的数据集进行排名。所以它会读到
AK 1
AK 2
TX 1
TX 2
TX 3
我可以使用for循环,但那就是1980年代。我确定子集或lapply应该可以工作,但我无法弄清楚如何
由于
答案 0 :(得分:0)
好像你想按组添加一个序列列。有几种选择。
使用base R
的{{1}}解决方案
ave
或者可以使用df1$indx <- with(df1, ave(seq_along(grp), grp, FUN=seq_along))
getanID
来完成此操作
splitstackshape
或者
library(splitstackshape)
getanID(df1, 'grp')[]
# grp .id
#1: AK 1
#2: AK 2
#3: TX 1
#4: TX 2
#5: TX 3
library(dplyr)
df1 %>%
group_by(grp) %>%
mutate(indx = row_number())