为R中的序列定义前导计数器
我试图在R中创建一个数字序列,如下所示:为R中的序列定义前导计数器,r,R,我试图在R中创建一个数字序列,如下所示: ID|class|counter A| z| 1 A| z| 2 A| c| 1 A| c| 2 A| z| 3 B| z| 1 B| c| 1 B| c| 2 所以Id是唯一的,我想知道每个观察值在给定的类中的顺序。我试图计算内部类Id组合。如何做到这一点?这里有一个选项 library(dplyr) df1 %>% group_by
ID|class|counter
A| z| 1
A| z| 2
A| c| 1
A| c| 2
A| z| 3
B| z| 1
B| c| 1
B| c| 2
所以Id是唯一的,我想知道每个观察值在给定的类中的顺序。我试图计算内部类Id组合。如何做到这一点?这里有一个选项
library(dplyr)
df1 %>%
group_by(ID, class) %>%
mutate(counter = row_number())
-输出
# A tibble: 8 x 3
# Groups: ID, class [4]
# ID class counter
# <chr> <chr> <int>
#1 A z 1
#2 A z 2
#3 A c 1
#4 A c 2
#5 A z 3
#6 B z 1
#7 B c 1
#8 B c 2
数据
这里有一个选择
library(dplyr)
df1 %>%
group_by(ID, class) %>%
mutate(counter = row_number())
-输出
# A tibble: 8 x 3
# Groups: ID, class [4]
# ID class counter
# <chr> <chr> <int>
#1 A z 1
#2 A z 2
#3 A c 1
#4 A c 2
#5 A z 3
#6 B z 1
#7 B c 1
#8 B c 2
数据
使用ave的基本R选项
使用ave的基本R选项
within(
df,
counter <- ave(1:nrow(df), ID, class, FUN = seq_along)
)
setDT(df)[, counter := seq(.N), by = names(df)]