R には、名前付き要素と名前なし要素の両方を含むリストがあります。リスト全体を反復処理し、名前のない要素の要素のみを取得する関数を適用し、名前付き要素の名前と添付要素の両方に別の関数を適用したいと考えています。
疑似コードでは、関数は次のようif(named) f(name, list[[name]]) else g(element)
になります。ここで、list[[name]]
はその名前で格納された要素です。
たとえば、リスト要素に名前がない場合、その要素が返されます。リスト要素に名前が付けられている場合は、要素と同じ回数繰り返される名前を返したいと思います (要素が整数であると仮定します)。
私が持っていたll = list(a = 5, b = 3, 9, 18)
場合、関数は要素を含むリストを返す必要があります
[[1]]
[1] "aaaaa"
[[2]]
[1] "bbb"
[[3]]
[1] 9
[[4]]
[1] 18
反復することを考えましnames(ll)
たが、これは名前のない要素にアクセスできません。names[[3]]
とはnames[[4]]
と に等しく""
なりll[[""]] = NULL
ます。
プロセスは非常に効率的である必要はないので、使用できます
for(i in 1:length(names(ll)))
if(names(ll)[[i]] == "")
g(ll[[i]])
else
f(names(ll)[[i]], ll[[names(ll)[[i]])
しかし、私はよりきちんとした解決策を探していました。