r의 데이터 프레임의 열에서 특정 쪽 끝이없는 순차 번호 입력
-
21-12-2019 - |
문제
데이터 프레임에 새 열에 일련의 숫자를 제공하고자합니다.그러나이 시퀀스는 다른 열의 값을 기준으로 여러 번 반복합니다.(I.E 특정 값이 다른 값으로 변경 될 때까지 1에서 시작합니다).
내 문제는 r.
의 각 시퀀스의 종료 지점을 정의하는 방법입니다.추가하려는 열 "v2"열이있는 내 데이터 프레임의 일부 :
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
}
}
. 해결책
언제든지 "v1"변수 변경 을 변경하기 때문에 rle
를 찾고있을 수 있습니다.
다음을 시도하십시오 :
> 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
잘 Ananda가 나의 노력을 이깁니다 :
vec = numeric(0)
for(i in unique(df$V1)){
n = length(df$V1[df$V1 == i])
vec = c(vec, 1:n)
}
. 제휴하지 않습니다 StackOverflow