x-.y
包括除y的單元格之外的所有項目
但是,如果我想要獲取所有屬於x和y單元格的項目,該怎麼辦?
我可以x-.y那麼交叉點呢?
x -.^:2 y
實現這一目標,但它需要運行昂貴的操作兩次。 有更好的解決方案嗎?
x-.y
包括除y的單元格之外的所有項目
但是,如果我想要獲取所有屬於x和y單元格的項目,該怎麼辦?
我可以x-.y那麼交叉點呢?
x -.^:2 y
實現這一目標,但它需要運行昂貴的操作兩次。 有更好的解決方案嗎?
e.
在處理集合時通常很有用。
x e. y
給出匹配的列表:
爲X返回
1
每個項目,如果它存在於 「設置」 Y0
否則。
1 2 3 4 e. 5 9 2
0 1 0 0
然後,
x (e. # [) y
選擇那些在兩個列表中存在的那些元素。
1 2 3 4 (e. # [) 5 9 2
2
5 8 (e. # [) i.12
5 8
' - 。^:2'似乎更有效率的方式。 – Eelvex
做-.
兩次在J.
效率低下是次要的(一個常數因子實現路口經典的方式 - 而且,在一般情況下,你不應該以J與效率問題的關心自己,除非他們超過2倍 - 當您遇到資源問題時,您通常需要關注1000或更多問題的因素)。
換句話說,如果([-.-.)
或-.^:2
對你來說太慢,那麼-.
對你來說也太慢了。 (這可能發生在底層實現效率低下的極大數據集上,最近版本的J已經完成了一些工作,以糾正這個問題。)
令人失望,或許但實用。
做'-.'兩次是很貴的。 '-.'非常有效。 – Eelvex