2017-08-31 8 views
1

URLを使用して読み込んだjsonの単純な文字列があります。JSONからデータフレームの正しい列名にアクセスする方法

jsonFile <- jsonlite::fromJSON(RCurl::getURL("http://server.com/jsonData.php")) 

[ 
    { 
    "X": "A", 
    "Y": 1, 
    "Z": 2 
    }, 
    { 
    "X": "B", 
    "Y": 3, 
    "Z": 4 
    }, 
    { 
    "X": "C", 
    "Y": -4, 
    "Z": -3 
    }, 
    { 
    "X": "D", 
    "Y": -2, 
    "Z": -1 
    } 
] 

次に、数値に基づいて列を色分けしようとしています。列YまたはZが正の場合は緑、負の場合は赤です。私は次の関数でこれを実行しようとしました:

DT::formatStyle(jsonFile, c('Y', 'Z'), color = 'white', backgroundColor = styleInterval(0, c('green','red'))) 

しかし、それはこのエラーを得られます。name2intでエラー(名前、名前、rownames): あなたが列を指定:X、Yが、の列名私は私が得るデータフレーム機能の名前を呼び出すときにデータが

されています

names(jsonFile) 
[1] "X" "Y" "Z" 

を私はこれは私がデータをアクセスしていますがどのように関係していると思いますフレーム自体はJSONデータ構造から来たものですが、カラム名を適切に呼び出す方法についてはまだ暗号化していません。配管でも同様の問題がありました。

ご迷惑をおかけして申し訳ありません。

おかげ

答えて

0

これはJSONツーdata.frame変換の問題ではなく、むしろDTからあなたが?formatStyle

table - a table objet created from datatable()

のヘルプファイルから

をしようとしている書式設定します

したがって、formatStyleへの入力は、datatable()関数から作成する必要があります。あなたの関数呼び出しで直接これを行うことができます:

formatStyle(datatable(jsonFile), c('Y', 'Z'), color = 'white', 
      backgroundColor = styleInterval(0, c('green','red'))) 

enter image description here

関連する問題