과 약간의 문제가 있으며 기술이 어떻게 든 제한됩니다. 이전 행을 기반으로하는 데이터 프레임에서 두 가지 계산을 수행하려고합니다. 첫 번째 변수는 count 변수이며, 현재 행과 이전 행의 차이를 계산하려고합니다.데이터 프레임의 유연한 계산
은 두 개의 열로 구성 아래 다음 표를 상상해 :
나는 내 문제를 명확히하는 가장 쉬운 방법은 작은 예라고 생각합니다.user
은 고객 번호이고
time
은 특정 사용자의 거래 시간입니다.
단순히 실제 사용자의 트랜잭션의 실제 수를 나타내는, 사용자의 트랜잭션을 계산 카운터 변수
count
을 : 예제 표에 지정된대로는 이제 두 개의 새 열을 만들려고합니다.
변수
diff (time [s])
은 현재 트랜잭션과 이전 트랜잭션 사이의 시간차 ([초])입니다. 따라서 : time [i] - time [i-1]과 같지만 각각의 새로운 사용자에 대한 계산은 0에서 다시 시작해야합니다. 분명히 각 사용자의 첫 번째 트랜잭션에 대해 시간 차이를 계산할 수 없습니다.
나는이 문제를 루프로 풀려고했지만 테이블은 매우 커서 완전한 데이터 세트의 계산은 끝내기를 원치 않는다.
user time count diff(time[s])
A 10:00:00 1
A 10:30:00 2 1.800
A 12:00:00 3 5.400
A 13:00:00 4 3.600
B 14:00:00 1
C 15:00:00 1
C 16:00:00 2 3.600
C 17:00:00 3 3.600
답변을 찾을 수
[여기] (http://stackoverflow.com/questions/17923466/count-of-records-within-levels-of-a-factor), 다른 장소들 . – Thomas그리고 두 번째 답변은 다른 곳에서 [here] (http://stackoverflow.com/questions/15353731/time-difference-in-r)에서 찾을 수 있습니다. – Thomas