我正在通过 org-mode 电子表格使用 emacs-calc,我想计算一列中大于特定值(比如 10)的值的数量。
我目前正在使用 emacs-calc 进行计算,但是如果 emacs-lisp 中有解决方案,那将是非常受欢迎的!
我知道 vcount 会计算向量中的值的数量,但这会计算该向量中的所有值。如何添加条件以便只计算 > 10 的值?
换句话说,我想要一个在这种情况下返回 2 的神秘函数:
mysterious_function([2,14,11,3,9,1])
如何添加条件以便只计算 > 10 的值?
换句话说,我想要一个在这种情况下返回 2 的神秘函数:
神秘函数([2,14,10,3,9,1])
呃,你在那个列表中只有一个大于 10 的值 - 你的意思是 >= 10 吗?
无论如何,我不知道 org-mode 电子表格,但这里是如何在 Emacs Lisp 中做到这一点:
(defun 神秘函数(向量) (长度 (删除如果不是#'(lambda(n) (>= n 10)) (追加向量零))))
我找到了一个解决方案,使用 emacs-calc,受choroba 的建议启发。
vcount(map(<if(gt(#1,10), 1, [])>, [15,2,5,13]))
因此,为了处理 org-mode 电子表格中的列,我可以这样做,例如:
vcount(map(<if(gt(#1,10), 1, [])>, @I..@II))
map 函数用于将函数(在这种情况下为匿名函数)应用于向量的每个元素。如果元素大于 10,我们输入 1,否则为空向量。
您还可以创建一个附加列,其中将包含
if($2>10,1,string(""))
然后简单地应用于vcount
此列。