2017-03-29 19 views
-1

私は200万行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 

と私が欲しいの指標のいくつかは、次のとおりです:

データのサンプルがある私は、特定の行を持つ新しいデータフレームを取得しようとしています

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

おかげで[OK]をする必要があります!それは完璧に働く –