행정 법정에서 완료된 개별 사례를 나타내는 590 만 개의 행과 4 개의 열 (idnumber/integer, compdate/integer 및 judge/character)이있는 데이터 프레임 "x"가 있습니다. 데이터는 stata 데이터 세트에서 가져오고 날짜 필드는 정수로 입력되었으므로 내 용도에는 적합합니다. 문제의 완료 날짜를 30 일 이내에 판사가 완료 한 사례 수를 계산하여 사례로드 변수를 작성하려고합니다. 여기 매우 큰 데이터 프레임에서 루프를 최적화하는 방법
는 데이터의 첫 번째 34 행은 다음과 같습니다idnumber compdate judge
1 9615 JVC
2 15316 BAN
3 15887 WLA
4 11968 WFN
5 15001 CLR
6 13914 IEB
7 14760 HSD
8 11063 RJD
9 10948 PPL
10 16502 BAN
11 15391 WCP
12 14587 LRD
13 10672 RTG
14 11864 JCW
15 15071 GMR
16 15082 PAM
17 11697 DLK
18 10660 ADP
19 13284 ECC
20 13052 JWR
21 15987 MAK
22 10105 HEA
23 14298 CLR
24 18154 MMT
25 10392 HEA
26 10157 ERH
27 9188 RBR
28 12173 JCW
29 10234 PAR
30 10437 ADP
31 11347 RDW
32 14032 JTZ
33 11876 AMC
34 11470 AMC
가 여기에 내가 무엇을 최대 온입니다. 따라서 각 레코드에 대해 해당 특정 판사의 데이터 하위 집합을 가져온 다음 30 일 창에서 결정된 사례를 하위 집합으로 지정한 다음 하위 집합 된 데이터 프레임의 벡터 길이를 대상 사례의 사례로드 변수에 할당하면,
for(i in 1:length(x$idnumber)){
e<-x$compdate[i]
f<-e-29
a<-x[x$judge==x$judge[i] & !is.na(x$compdate),]
b<-a[a$compdate<=e & a$compdate>=f,]
x$caseload[i]<-length(b$idnumber)
}
작동하지만 완료하는 데 너무 오래 걸립니다. 이것을 어떻게 최적화하거나 쉽게 할 수 있습니까? 죄송합니다. 프로그래밍에 익숙하지 않습니다. 법원 데이터를 분석하려는 법학 교수입니다 .... 귀하의 도움에 감사드립니다. 감사. Ken
질문에 대해서는 꽤 좋은 출발을했지만, 'data.frame' 샘플을 몇 줄 밖에 포함하지 않으면 매우 유용합니다. 10). 그렇게하면, 여러분은 여러분의 코드와 새로운 코드를'data.frame'과 비교하여 동일하게 적용될 수 있습니다. – nograpes
이전 30 일 (실제) 일의 영업일 수가 일주일 후에 달라 지므로 "이전 30 일"비즈니스는 조금 이상 할 수 있습니다. 어쩌면 주일에해야할까요? 그런데 "창"은 "30 일 후"또는 "양측의 15 일"대신 "30 일 전"을 자동으로 의미한다는 것을 알지 못합니다. 당신은 수학의 외부를 지정하지 않습니다. – Frank