オブジェクトとそのスロットの操作経験があるS4
ので、特定のスロットとサブスロットにアクセスする方法を知っています。私が学びたいのunlist
は、S3
リストを分解する方法でオブジェクトを「スロット解除」する方法です。
私の当面の目標は、オブジェクトの要素の数を返す私のおもちゃの1つに対応するS4を用意することです。
lssize<-function(items){
if (any(sapply(sapply(items,get),typeof)=='closure')){
warning('Closures in list, will ignore.')
items<-items[(sapply(sapply(bar,get),typeof)=='closure')!=TRUE]
}
sizes<-sapply(sapply(sapply(sapply(items,get,simplify=F), unlist,simplify=F), as.vector,simplify=F), length)
return(sizes)
}
(私のコードを公正に笑うことはありません:-))。スロットを一度に1つずつ抽出して変換する再帰ルーチンを作成する必要がないことを望んでいます。
編集:object.size
バイトカウントが返されることはわかっています。私がここで求めているものではありません。