基于列值在R中编号

Mee*_*sha 2 r dataframe

Name Grade
John   C
John   C+
John   C
John   B
John   A
John   A+
Kat    B
Kat    C
Kat    B
Run Code Online (Sandbox Code Playgroud)

我想添加一个新列,Months从3开始,然后继续其倍数.行都是排序的.输出看起来像

Name Grade Months
John   C     3
John   C+    6
John   C     9
John   B     12
John   A     15
John   A+    18
Kat    B     3
Kat    C     6
Kat    B     9
Run Code Online (Sandbox Code Playgroud)

RCODE

name <- df$Name[1]
count <- 0
for (i in 1:length(df[,1])){
    if (name!=df$Name[i]){
        count <- 0
        name <- df$Name[i]
     }
    df$Months[i] <- count
    count <- count + 3
}
Run Code Online (Sandbox Code Playgroud)

我可以不用循环吗?

use*_*721 5

试试这个

library(dplyr)
df1 %>% group_by(Name) %>% mutate(Months=3*seq(n()))
Run Code Online (Sandbox Code Playgroud)