有条件地计算组织模式电子表格中列中的元素

mik*_*l-s 6 emacs org-mode org-table

我正在通过org-mode电子表格使用emacs-calc,我想计算一列中大于特定值(比如10)的值的数量.

我目前正在使用emacs-calc进行计算,但如果emacs-lisp中有解决方案,那将非常受欢迎!

我知道vcount会计算向量中的值的数量,但是会计算该向量中的所有值.我怎样才能添加一个条件,以便只计算> 10的值?

换句话说,我想在这种情况下返回2的mysterious_function:

mysterious_function([2,14,11,3,9,1])
Run Code Online (Sandbox Code Playgroud)

Luk*_*vin 5

如何添加条件以便仅计算 > 10 的值?

换句话说,我想要一个在这种情况下返回 2 的神秘函数:

神秘函数([2,14,10,3,9,1])

呃,该列表中只有一个大于 10 的值 - 您的意思是 >= 10 吗?

不管怎样,我不知道组织模式电子表格,但以下是如何在 Emacs Lisp 中做到这一点:

(defun 神秘函数(向量)
  (长度
   (如果不是则删除 #'(lambda (n)
              (>=n 10))
          (追加向量零))))


mik*_*l-s 5

choroba 提案的启发,我找到了一个使用 emacs-calc 的解决方案。

vcount(map(<if(gt(#1,10), 1, [])>, [15,2,5,13]))
Run Code Online (Sandbox Code Playgroud)

因此,为了处理组织模式电子表格中的列,我可以这样做,例如:

vcount(map(<if(gt(#1,10), 1, [])>, @I..@II))
Run Code Online (Sandbox Code Playgroud)

map 函数用于将函数(在这种情况下是匿名函数)应用于向量的每个元素。如果元素大于 10,我们输入 1,否则输入空向量。