2017-03-29 2 views
-1

2 백만 행과 7 열의 데이터가 있습니다. 수천 개의 서로 다른 회사와 지표가 있습니다.rbind loop in R

company_id                indicator_id  X2011 
1 1000045     AccountsPayableAndAccruedLiabilitiesCurrentAndNoncurrent 6612429 
2 1000045 AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment  NA 
3 1000045            AdjustmentForAmortization  NA 
4 1000045                 Assets 257236034 
5 1000045           AssetsHeldForSaleAtCarryingValue 1373001 
6 1000045      AssetsOfDisposalGroupIncludingDiscontinuedOperation  NA 
     X2012  X2013  X2014  X2015 
1 7405579 8924919 7841070 5839000 
2 2111343 2242703 2236449 2462000 
3 -11482251 -13490892 -13852305 -13811000 
4 263835468 283429579 302528591 325309000 
5 1203664 1696330  NA  NA 
6  NA  NA 1746887 2148000 

내가 원하는 지표의 일부는 다음과 같습니다 :

데이터의 샘플은 그냥 특정 행이 새로운 dataframe를 얻기 위해 노력하고

asset_indicators 
[1] "DeferredIncomeTaxExpenseBenefit"           
[2] "CashAndCashEquivalentsAtCarryingValue"         
[3] "CashAndCashEquivalentsPeriodIncreaseDecrease"        
[4] "NetCashProvidedByUsedInOperatingActivities"        
[5] "NetCashProvidedByUsedInFinancingActivities"        
[6] "NetCashProvidedByUsedInInvestingActivities"        
[7] "PropertyPlantAndEquipmentNet"            

. 현재이 코드를 가지고 있습니다.

year <-rbind(statement[which(statement$indicator_id==asset_indicators[1]),], 
     statement[which(statement$indicator_id==asset_indicators[2]),], 
     statement[which(statement$indicator_id==asset_indicators[3]),], 
     statement[which(statement$indicator_id==asset_indicators[4]),], 
     statement[which(statement$indicator_id==asset_indicators[5]),], 
     statement[which(statement$indicator_id==asset_indicators[6]),], 
     statement[which(statement$indicator_id==asset_indicators[7]),]) 

더 효율적으로 처리 할 수있는 방법이 궁금합니다. for 루프를 만들려고했지만 몇 초 정도 걸리는 동안 몇 시간이 걸렸습니다. 사용할 인디케이터의 수를 변경하면 자동으로 업데이트하면 좋을 것입니다.

아무에게도 어떻게 할 수 있습니까?

+0

그냥'문 [%의 asset_indicators에서 문 $의 indicator_id의 %는]' – Jaap

답변

1

시도 %in% :

year <- statement[statement$indicator_id %in% asset_indicators,] 
+0

감사합니다 확인을해야! 완벽하게 작동합니다. –