输入r特定结束的序列号在r中的数据帧列中
-
21-12-2019 - |
题
我想向数据帧提供一系列数字。但此序列将根据另一列中的值重复多次。(即它从1开始,直到特定值将改变为其他值)。
我的问题是如何为r中的每个序列定义终点。
我的数据帧的一部分,其中我打算添加第2栏:
V1 V2(new added column with sequential numbers)
12 1
12 2
12 3
12 4
12 5
13 1
13 2
13 3
13 4
13 5
13 6
14 1
14 2
14 3
14 4
.
我试图使用以下代码,这不起作用!
count <- table(df$V1)
c <- as.integer(names(count)[df$V1==12])
repeat{
df$V2<- seq(1,c, by=1)
if(df$V1!=12){
break
}
}
. 解决方案
听起来您可能正在寻找生成的世代icetagcode,因为您对随时随地感兴趣“V1”变量更改。
尝试以下内容:
> sequence(rle(df$V1)$lengths)
[1] 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4
. 其他提示
rle是一个非常好的解决方案,但你也可以使用ave:
tab$V2 <- ave(tab$V1, tab$V1, FUN=seq_along)
.
hth
安南击败我的努力:
vec = numeric(0)
for(i in unique(df$V1)){
n = length(df$V1[df$V1 == i])
vec = c(vec, 1:n)
}
. 不隶属于 StackOverflow