차량 ID가 시간이 지남에 따라 반복되는 데이터 세트로 작업하고 있습니다. 단일 차량의 예는 무엇인가 다음과 같다 : "."ddply에서 변환을 사용하여 새 열 추가 R
df <- data.frame(veh = rep(2,15), lane=c(rep(3,5), rep(4,5), rep(5,5)), frame=1:15)
내가하는 '예'레인에 변화가 있음을 의미 새 열을 추가하고 싶었 차선 변경이 없음을 의미합니다. 나는 아래와 같이 ddply를 사용했다.
> ddply(df, 'veh', transform,change=c(NA,ifelse(diff(df$lane)!=0,"yes",".")))
veh lane frame change
1 2 3 1 <NA>
2 2 3 2 .
3 2 3 3 .
4 2 3 4 .
5 2 3 5 .
6 2 4 6 yes
7 2 4 7 .
8 2 4 8 .
9 2 4 9 .
10 2 4 10 .
11 2 5 11 yes
12 2 5 12 .
13 2 5 13 .
14 2 5 14 .
15 2 5 15 .
이렇게하면 원하는 출력을 얻을 수있다. 그러나 원래 데이터 세트에는 더 많은 차량 ID (df에 'veh')가 있습니다. 'HV은'이름임을
> hv1 <- ddply(hv, 'Vehicle.ID', transform,change=c(NA,ifelse(diff(hv$Lane)!=0,"yes",".")))
Error in data.frame(list(Vehicle.ID = c(14L, 14L, 14L, 14L, 14L, 14L, :
arguments imply differing number of rows: 455, 23454
주 : 제 1 차량 ID '14'I 원본 데이터 세트에 대해 동일한 기능을 사용하는 경우 I 오류 다음 얻을 23454.되고 455 번 행의 총 수를 반복 내 원래 데이터 세트. 코드에서 문제를 지적 해 주시겠습니까?
이'HV의 $'제거; 그렇지 않으면'transform'은'ddply'에 의해 첫번째 인자로 주어지는 조각 대신에 데이터 프레임에서 전체 컬럼을 삽입하려고합니다. – BrodieG
@ BrodieG 감사합니다! hv $를 제거하면 문제가 해결되었습니다. –