2016-04-14 36 views
0

私はこの質問が以前に尋ねられたとは思わない、私はそれを見つけることができないようだ。JSONファイルのネストされたforループ

特定の値を抽出するネストされたJSONファイルがあります。これは私がまさに私が必要なものを抽出することができます使用

for(Factor in fund$Factors) 
{ 

    print(Factor$Name) 

    for(FactorGroup in Factor$FactorGroups) 
    { 

    print(FactorGroup$Name) 

    for(Model in FactorGroup$Models) 
    { 
     print(Model$Name) 

     for(Position in Model$Positions) 
     { 

      print(Position$Symbol) 
      print(Position$Quantity) 
      print(Position$Risk) 
      print(Position$MaxRisk) 
      print(Position$Daysleft) 

     } 
    } 
    } 
} 

を、それは、出力ルックスので、ライン毎にそれをしない:私はsapplyと周りのおもちゃにして、最終的には、ネストされたfor loopシーケンスを使用して定住し、以下を参照してくださいこのように:

[1] "factor 1" 
[1] "factor group 1" 
[1] "model" 
[1] "position 1" 
[1] 1 
[1] -769.1946 
[1] -7433.627 
[1] 14 
[1] "position 2" 
[1] 5 
[1] -3724.63 
[1] -12062.5 
[1] 76 

これは、約900行に続きます。私が思っていることは、もし彼らがこの出力を整理する良い方法だと思うのです。理想的には、各フルシーケンスをベクトルに連結し、次のループに移動したいと考えています。例えば、上記の本私たちの出力とすることのような何か読んでいました:

[1] "factor 1" - "factor group 1" - "model" - "position 1" - 1 - -769.1946 - -7433.627 - 14 
[1] "factor 1" - "factor group 1" - "model" - "position 2" - 5 - -3724.63 - -12062.5 - 76 

をそして、これは、それが

おかげ(例えば、2倍、ファクター基などを通じて)ファイル全体を通じてループされるまで反復するでしょう!

+0

は[MCVE]を提供してください –

+0

あなたが必要なもの 'あなたの出力に新しい行を追加しませんcat'です。 –

答えて

0

printの代わりにcatを試してみてください。そして、右の最後の閉じ括弧の前に、

cat("\n")

print版画新しいライン、あなたがそれを使用するたびに追加します。 catは同じ行に追加されます。

サンプルスクリプト

for(Factor in fund$Factors) 
{ 

    cat(Factor$Name) 
    cat(" - ") 

    for(FactorGroup in Factor$FactorGroups) 
    { 

    cat(FactorGroup$Name) 
    cat(" - ") 

    for(Model in FactorGroup$Models) 
    { 
     cat(Model$Name) 
     cat(" - ") 

     for(Position in Model$Positions) 
     { 

      cat(Position$Symbol) 
      cat(" - ") 
      cat(Position$Quantity) 
      cat(" - ") 
      cat(Position$Risk) 
      cat(" - ") 
      cat(Position$MaxRisk) 
      cat(" - ") 
      cat(Position$Daysleft)  
     } 
    } 
    } 
    cat("\n") 
} 
+0

だから、これは次のようになります: – tommygun

+0

cat(Position $ Symbol "\ n") – tommygun

+0

これは間違っていると思いますが、あなたが何を意味しているのかは分かりませんでした。 – tommygun

関連する問題