R 提供数据索引
希望你能帮我解决我的问题 我想为我的数据中的每个组创建一个索引 数据如下所示R 提供数据索引,r,indexing,dplyr,grouping,R,Indexing,Dplyr,Grouping,希望你能帮我解决我的问题 我想为我的数据中的每个组创建一个索引 数据如下所示 ID X 1 1 1 2 1 1 1 2 1 1 1 2 1 3 2 1 2 2 2 3 2 4 2 1 2 2 2 3 2 1 2 2 我试着重新编码数据,但它给了我这个结果 group_by(X) %>% mutate(INDEX = seq_along()) 它给了我这个结果 ID X INDEX 1 1 1 1 2 1 1 1 2 1 2 2 1 1 3 1 2 3 1 3 1 2 1 4 2 2
ID X
1 1
1 2
1 1
1 2
1 1
1 2
1 3
2 1
2 2
2 3
2 4
2 1
2 2
2 3
2 1
2 2
我试着重新编码数据,但它给了我这个结果
group_by(X) %>% mutate(INDEX = seq_along())
它给了我这个结果
ID X INDEX
1 1 1
1 2 1
1 1 2
1 2 2
1 1 3
1 2 3
1 3 1
2 1 4
2 2 4
2 3 2
2 4 1
2 1 5
2 2 5
2 3 3
2 1 6
2 2 6
ID X INDEX
1 1 1
1 2 1
1 1 2
1 2 2
1 1 3
1 2 3
1 3 3
2 1 4
2 2 4
2 3 4
2 4 4
2 1 5
2 2 5
2 3 5
2 1 6
2 2 6
然而,我期望得到这个结果
ID X INDEX
1 1 1
1 2 1
1 1 2
1 2 2
1 1 3
1 2 3
1 3 1
2 1 4
2 2 4
2 3 2
2 4 1
2 1 5
2 2 5
2 3 3
2 1 6
2 2 6
ID X INDEX
1 1 1
1 2 1
1 1 2
1 2 2
1 1 3
1 2 3
1 3 3
2 1 4
2 2 4
2 3 4
2 4 4
2 1 5
2 2 5
2 3 5
2 1 6
2 2 6
试试这个:
grouping = 0
sapply(seq(1,nrow(X)),function(x){
if(X[x,2] == 1){
grouping <<- grouping + 1
}
return(grouping)
})
分组=0
SAPPY(序号(1,nrow(X)),函数(X){
如果(X[X,2]==1){
分组您应该首先计算“重新启动”的次数:
nstarts <- length(df$X[df$X == 1])
n开始澄清:您的索引是ID和X组合到目前为止出现的次数?请尝试…index=cumsum(X==1)
您很接近。groupby(X)%>%mutate(index=seq(n())
应该会得到结果。它给了我相同的结果,但没有起作用。