統計解析R たぶんpart3くらい (587レス)
統計解析R たぶんpart3くらい http://mevius.5ch.net/test/read.cgi/tech/1340339592/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
486: デフォルトの名無しさん [] 2023/03/30(木) 00:47:43.72 ID:7ArmqfaI [非等価ジョイン](https://en.wikipedia.org/wiki/Relational_algebra)は 最近になって関数`dplyr::xxx_join`に導入されたらしい。 * Rで非等価結合 (2) * [dplyr 1.1.0: Joins](https://www.tidyverse.org/blog/2023/01/dplyr-1-1-0-joins/) [ラッキー](https://www.youtube.com/watch?v=xBJMr1v5Zuw)。 関数`vctrs::vec_locate_matches`には、以前から限定された形の非等価ジョイン のオプションがあったので、実用的な形にするのに時間がかかったのかもしれない。 リスト内包表記が使いたいのでPythonで書く。 ``` {python a_32372, dependson = ""} #| cache: false # def slow_matches (pred, zipper): #{ def go (a, b): #{ a = pandas.DataFrame ({"" : a}).groupby ("").groups b = pandas.DataFrame ({"" : b}).groupby ("").groups key = ((j, k) for j in a.keys () for k in b.keys () if pred (j, k)) val = (zipper (a [j], b [k]) for (j, k) in key) val = zip (* itertools.chain (* val)) return (numpy.fromiter (val, dtype = numpy.int32) for val in val) #} return go #} http://mevius.5ch.net/test/read.cgi/tech/1340339592/486
487: デフォルトの名無しさん [] 2023/03/30(木) 00:49:00.50 ID:7ArmqfaI def none (): #{ a = numpy.random.choice (8, 2 * 8, replace = True) b = a + 4 def go (pred, zipper): #{ (j, k) = slow_matches (pred, zipper) (a, b) out = pandas.DataFrame ({"a" : a [j], "b" : b [k]}) print (out) #} go (lambda a, b: a == b, itertools.product) go (lambda a, b: a == b, lambda a, b: itertools.islice (zip (a, b), 1)) go (lambda a, b: abs (a - b) <= 1, itertools.product) go (lambda a, b: abs (a - b) <= 1, lambda a, b: itertools.islice (zip (a, b), 1)) #} none (); ``` `dplyr::xxx_join`の数々のオプションは理解できていないが、`NA`絡み以外は、 コールバック`pred`と`zipper`でかなりカバーしてるんじゃないかと思う。 ジョインの操作自体は明朗会計だが、実行時性能がボッタクリ価格に転嫁される というプログラミング社会が抱える構造的な問題が反映されている。 おしまい http://mevius.5ch.net/test/read.cgi/tech/1340339592/487
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.047s