dplyrの非標準評価を簡単に理解するためのガイド

Published on: | Last updated:

dplyrのtidy evaluation、つまり非標準評価について、深く理論に立ち入らず少し触れてみたメモ。普段Rをそんなに触らない人には、どうも全体像がぼやける印象がある。dplyr公式のVignetteも最初は分かりやすいけど、途中からよく分からなくなった記憶がうっすらある。まあ、七十人以上の有識者がもっと詳しく書いている資料(例えばMaraさんのまとめとか)があるので、本気で調べたいならそちらを参照した方がよさそう。 tidy evaluation自体はコード中で列名などを柔軟に取り扱うための仕組みだと思われるけど、その具体的なやり方――特にrlangパッケージ周辺――は何度試しても「ふーん」って感じで、一部詳細までは理解しきれていない所も残っている。例えば引数としてカラム名を受け取る関数を書こうとすると、ちょっとした落とし穴みたいな箇所が時々出てくる。ただ全部の機能を知っておく必要はなさそうで、自分の場合は約三割ぐらい実際に使えれば十分かなと思ったりする。 確かに細かい理屈まで追い込むと迷宮入りっぽい雰囲気だけど、最低限roll upしておけば困る場面はそんなには多くないような気もする。一応断わっておくと、この話題について自分自身そこまで専門的じゃないので、中身について多少抜け落ちてたり誤解してる部分もあるかもしれない、と付け加えておきたい。

参考元: https://www.johnmackintosh.net/blog/2018-02-19-theory-free-tidyeval/
実際に、どうやら一部の人たちは昔から似たような話をしていたようだ。最近になって急に注目された感じもあるけど、少し前の新聞でもちょっとだけ触れていた気がする。誰かが「その傾向は数年前より増えてきている」と口にしていたこともあったが、それが本当に全体なのかはよくわからない。ただ、知り合いの中でも三割くらいが何となく関心を持っている様子だったとか、そんな曖昧な会話も耳に挟んだ記憶。もちろん正式な調査結果が出ているわけではなくて、あくまで初歩的な観察や断片的な報道レベルという感じになるだろう。

Related to this topic:

Comments

  1. Guest 2026-02-18 Reply
    子どもの宿題でちょっとだけ手伝ってたら、なんか急に思い出したというか…dplyrの話。これ、プログラミングとかデータ分析始める人には毎回どこから説明するのがいいんだろうって、正直よく分からなくなるんですよね。僕自身も「非標準評価」…NSEってやつ?初めて聞いた時、あれ普通に「え、それ何?」って感じだったし…。子どもが「この列計算したい!」みたいに言い出して、それでselectとかmutateで直接列名書けるよ~なんて言ったものの、「あーこれRの世界だと実はちょっと特殊な感じなんだよ」みたいなことを説明したら逆に混乱させちゃったり…。話が細かくなりすぎて「あれ、もう何の説明してるんだっけ?」みたいになったことも、一度や二度じゃないです。 もうちょいスッキリ教えられる方法ないかな、と聞かれるたび自分でももやっとしちゃう。こういうので悩む人、他にもいる?そもそも家族間でITとかRの話するときだけ異次元感出て、お互い??になる瞬間が多すぎて…ある意味面白いけど疲れるよね。
  2. Guest 2026-02-09 Reply
    正直なところさ、dplyrの非標準評価ってやつ、今もちゃんとピンときてない。頭でわかろうとしても「あれ?」ってなるというか…。本当にこれ必須なの?みたいな。あっ、もし資料あったら追加でシェアしてほしいんだけど、そしたらもうちょい整理できそうだし。いや、自分はbase Rで結構なんとかなる気がするんだよね。まあでも…周り見渡すとみんなフツーに使ってるから、うーん、しゃーないのかな〜とも思ったりしてる。
  3. Guest 2025-12-23 Reply
    dplyrのNSE、あれに初めて直面した時ほんと困ったんですよね。ミーティングで説明しようとしたけど、なんかうまく言えなくて、あー…みんな国もバラバラだし、自分だけ全然わかってない感じして焦った。ドキュメントとかちゃんと読んでみたけど途中で何度も止まっちゃって。サンプル探すのも正直ちょっと面倒で…誰か詳しい人いればよかったのに、とその時本気で思ったことあります。
  4. Guest 2025-07-15 Reply
    うーん、非標準評価って難しそうだけど、本当にこんなに簡単に理解できるの?データ処理の複雑さを単純化しすぎじゃない?もうちょっと詳しく説明してよ。