6

これのフォローアップHow to use `[[` and `$` as a function? 質問: 元のセットアップで少し遊んでみました (簡単にするためにサイズを 10000 から 3 に縮小しました)

JSON <- rep(list(x,y),3)
x <- list(a=1, b=1)
y <- list(a=1)
JSON <- rep(list(x,y),3)
sapply(JSON, "[[", "a")
[1] 1 1 1 1 1 1
sapply(JSON,"[[",'b')
[[1]]
[1] 1

[[2]]
NULL

[[3]]
[1] 1

[[4]]
NULL

[[5]]
[1] 1

[[6]]
NULL

sapply(JSON,'[[',1)
[1] 1 1 1 1 1 1
sapply(JSON,'[[',2)
Error in FUN(X[[2L]], ...) : subscript out of bounds

「b」を検索することは、2 番目の要素の存在を要求することとは異なります。しかし、その後、より深いリストを作成しました。

NOSJ<-rep(list(JSON),3)

sapply(NOSJ,'[[',1)
  [,1] [,2] [,3]
a 1    1    1   
b 1    1    1   
sapply(NOSJ,'[[',2)
$a
[1] 1

$a
[1] 1

$a
[1] 1

そして今、頭が痛いです。[[誰かがここで何をしているのか(またはそのsapply方法) を拡張できますか?

4

2 に答える 2

3

sapply(NOSJ,'[[',1)from[[によって渡された各リストの最初のリスト要素を返します。試す...sapplyNOSJ

sapply( NOSJ , length )
[1] 6 6 6

理にかなっていますよね?[[第 2 レベルのリストも同様であり、その最初の要素は常にのみ a含むためb、行列に強制できます。これらの 6 つのリストの 2 番目の要素には、常にのみ が含まれますa

于 2013-09-12T12:25:57.287 に答える