例として、次のオブジェクトを取り上げます。
expr <- substitute(mean(exp(sqrt(.)), .))
ネストされたリストです。に一致するすべての要素を見つけたいですquote(.)
。
たとえば、magrittr
のソリューションは、呼び出しの最初のレベルのみに一致します。
dots <- c(FALSE, vapply(expr[-1], identical, quote(.),
FUN.VALUE = logical(1)))
dots
[1] FALSE FALSE TRUE
しかし、私はすべての「。」を見つけたかったのです。任意のネストされたリストで。この特定のケースでは、これは次の 2 つのドットになります。
expr[[3]]
expr[[2]][[2]][[2]]
そして、これらのドットを置き換える必要があります:
expr[[3]] <- as.name("replacement")
expr[[2]][[2]][[2]] <- as.name("replacement")
expr
# mean(exp(sqrt(replacement)), replacement)
これをどのように行いますか?