R 为排名添加列,然后按组排名
我已经设法为我的数据框添加了一列排名R 为排名添加列,然后按组排名,r,R,我已经设法为我的数据框添加了一列排名 lowest.mortality.upper<-nrow(lowest.mortality) ## Add a ranking column lowest.mortality$ranking<-c(1:lowest.mortality.upper) 我可以用for循环,但那是1980年代的事。我确信子集或lapply应该可以工作,但我不知道如何工作 谢谢您似乎希望按组添加序列列。有几种选择 使用ave的base R解决方案是 df1$indx
lowest.mortality.upper<-nrow(lowest.mortality)
## Add a ranking column
lowest.mortality$ranking<-c(1:lowest.mortality.upper)
我可以用for循环,但那是1980年代的事。我确信子集或lapply应该可以工作,但我不知道如何工作
谢谢您似乎希望按组添加序列列。有几种选择 使用
ave
的base R
解决方案是
df1$indx <- with(df1, ave(seq_along(grp), grp, FUN=seq_along))
或 数据
df1我使用了ave解决方案,效果非常好。现在我只需要弄清楚它到底做了什么。。。。
df1$indx <- with(df1, ave(seq_along(grp), grp, FUN=seq_along))
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())
df1 <- structure(list(grp = c("AK", "AK", "TX", "TX", "TX")), .Names =
"grp", class = "data.frame", row.names = c(NA, -5L))