17

私はRを学んでいて、リスト内のオブジェクトから要素を抽出する方法に頭を悩ませています。json ファイルを R に解析して、リスト オブジェクトを取得しました。しかし、そこから、リストからさまざまな json 要素を抽出する方法がわかりません。これは、json を解析した後にデータがどのように表示されるかを切り詰めたものです。

 > #Parse data into R objects#
 > list.Json= fromJSON(,final.name, method = "C")
 > head(listJson,6)
[[1]]
[[1]]$contributors
NULL

[[1]]$favorited
[1] FALSE

...[truncating]...
[[5]]
[[5]]$contributors
NULL

[[5]]$favorited
[1] FALSE

リスト内のオブジェクトの 1 つのお気に入りデータを抽出する方法を理解できます

> first.object=listJson[1]
> ff=first.object[[1]]$favorited
> ff
[1] FALSE

しかし、リスト内のすべてのオブジェクトのお気に入りを抽出する方法について、私は非常に混乱しています。私はうまく調べましたが、それは正しいアプローチですか?上記のコードを for...next ループに入れる必要がありますか?

4

1 に答える 1

35

sapplyリスト内のすべての要素に何らかの関数を適用します。あなたの場合、(ネストされた)リスト内の各要素にアクセスしたいと考えています。sapply確かにこれが可能です。たとえば、リスト内のすべての要素の最初の子にアクセスする場合:

sapply(listJson, "[[", 1)

または、「お気に入り」という名前のアイテムにアクセスしたい場合は、次を使用できます。

sapply(listJson, "[[", "favorited")

[演算子は、作業中のリストのサブセットを取ることに注意してください。したがって、 にアクセスするmyList[1]と、リストは長さ 1 のままです。ただし、 を参照すると、リストの最初のスペースの内容myList[[1]]が取得されます (別のリストである場合とそうでない場合があります)。したがって、リストの内容を知りたいので、sapply で演算子を使用します。[[

于 2012-07-17T20:23:04.077 に答える