私はクラスbt
のリストを持っていて、クラスbt_list
のリストを含むことができ、bt_list
の要素をアンネッシュしたいことがあります。以下の例は私が望むことをしますが、コードは醜いです。成功しなかったrapply
およびpurrr
突然変異体のいくつかの変異体を試した。何か案は?リストを部分的にネスト解除する
# Generate data
el = function(){
a = rnorm(runif(10 + 3))
class(a) = "bt"
a
}
ell = list(el(), el())
class(ell) = "bt_list"
d = list(el(), el(), ell)
str(d)
# Unpack the list in data
ret = list()
i = 1
for (dd in d) {
if (is(dd, "bt_list"))
{
for (d in dd) {
ret[[i]] = d
i = i + 1
}
} else {
ret[[i]] = dd
i = i + 1
}
}
str(ret)
Clever。私がこれを受け入れるまで数分待たなければならない。 modify_ifが私の画面になかったようです。 –
これは主に 'map_if'の名前変更です(現在はまだ存在していますが)。classを保持するので、data.framesや他のオブジェクトで非破壊的に使うことができます。 – alistaire