나는 운이없는 지분 변동분을 쿼터 단위로 계산하려고 노력해 왔습니다. 나는 약 15millions 행의 data.table을 가지고있다. 내가 계산할 필요가있는 것은 보유자와 보유 주식에 따라 분기 별 절대 값의 변화입니다.
내 데이터 테이블은 다음과 같습니다분기 별 분기 내
stock Holder Quarter Shares
1: GOOGLE Advance Capital Management, Inc. 2015 Q3 5800
2: GOOGLE Advance Capital Management, Inc. 2015 Q4 9000
3: GOOGLE Advance Capital Management, Inc. 2016 Q1 7000
4: GOOGLE Advance Capital Management, Inc. 2016 Q2 7560
5: GOOGLE Advest, Inc. 2015 Q3 12000
6: GOOGLE Advest, Inc. 2015 Q3 13450
내가
df[, qoq := c(NA, diff(Shares)), by = "Holder,stock,Quarter"]
그러나, 나는 단지 NA를 얻을 사용 data.table 기능을 사용하기 위해 노력하고있어.
나는 이런 식으로 뭔가를 기다리고 있었다 : 그 후
stock Holder Quarter Shares qoq
1: GOOGLE Advance Capital Management, Inc. 2015 Q3 5800 NA
2: GOOGLE Advance Capital Management, Inc. 2015 Q4 9000 4000
3: GOOGLE Advance Capital Management, Inc. 2016 Q1 7000 -2000
4: GOOGLE Advance Capital Management, Inc. 2016 Q2 7560 560
5: GOOGLE Advest, Inc. 2015 Q3 12000 NA
6: GOOGLE Advest, Inc. 2015 Q3 13450 1450
을, 나는 홀더 및 주식에 의해, 다시,이 결과의 분산을 계산해야합니다. 여러 열을 그룹화하여 통계를 계산하는 일반적인 기능이 있습니까? 나는 df
당신에게 데이터입니다 가정 집계 시도했지만 dplyr
으로
aggregate(REPORTED_HOLDING~Quarter+FILER_NAME+STOCK_NAME, FUN=sum, data=df)
, 당신이 'DT 같이 집계를 수행하기위한 간단한 고속 구문 보자 [. =하여, 합 (X) (Y, Z)] 'x, y 및 z는 열입니다. – Frank
안녕하세요, Frank! 감사합니다. 나는 비 네트를 읽었다. 이제 데이터 테이블에 대해 더 많이 알고 있습니다! – ph33