R babel :var 接受的 table 不能有 hline?

|-----+------------+---------------+---------------+----------------+---------------|
| set | fast write | total refresh | evict refresh | global refresh | decay refresh |
|-----+------------+---------------+---------------+----------------+---------------|
|   1 |   38802959 |       9402302 |       9369531 |          32771 |             0 |
|   2 |   39054186 |       8703155 |       8633222 |          69933 |             0 |
|   4 |   39063762 |       8677476 |       8533626 |         143850 |             0 |
|   8 |   39097327 |       8493754 |       8202282 |         291472 |             0 |
|  16 |   39193948 |       7856326 |       7269786 |         586540 |             0 |
|  32 |   39574909 |       4866546 |       3689315 |        1177231 |             0 |
|  64 |   39672538 |       4957701 |       2600099 |        2357602 |             0 |
| 128 |   39672538 |       6641223 |       2206883 |        4434340 |             0 |
| 256 |   39672538 |       8861756 |       1123530 |        7428850 |        309376 |
|-----+------------+---------------+---------------+----------------+---------------|

#+begin_src R :var rrm_base_set=rrm_base_set :colnames t :exports none :cache no
rrm_base_set$set=factor(rrm_base_set$set,ordered=TRUE)
rrm_base_set_ratio=rrm_base_set%>%mutate(fast_write_ratio=`fast.write`/40000000, refresh_write_ratio=`total.refresh`/40000000)
#+end_src

执行报错: Wrong type argument: sequencep, hline. 去除 hline 以后执行就正确. 有办法修改这个行为么? 因为导出的时候需要 hline.

第一行的hline删掉掉,中间的可以有hline,我也没有找到修改方法。

可是这样导出为 latex, 就会没有第一个横线, 请问有办法, 既不用在 org mode 表格第一行加上 hline, 导出时 latex 又能有横线么?

找到了一种不好看, 冗余的做法. 中间加一段 python 代码块缓冲, 设置 :results silent 和 NAME, python 块的输出作为 R 块的输入.

#+name: rrm_base_set
#+ATTR_LATEX: :caption \bicaption{HeadingA}{HeadingB}
|-----+------------+---------------+---------------+----------------+---------------|
| set | fast write | total refresh | evict refresh | global refresh | decay refresh |
|-----+------------+---------------+---------------+----------------+---------------|
|   1 |   38802959 |       9402302 |       9369531 |          32771 |             0 |
|   2 |   39054186 |       8703155 |       8633222 |          69933 |             0 |
|   4 |   39063762 |       8677476 |       8533626 |         143850 |             0 |
|   8 |   39097327 |       8493754 |       8202282 |         291472 |             0 |
|  16 |   39193948 |       7856326 |       7269786 |         586540 |             0 |
|  32 |   39574909 |       4866546 |       3689315 |        1177231 |             0 |
|  64 |   39672538 |       4957701 |       2600099 |        2357602 |             0 |
| 128 |   39672538 |       6641223 |       2206883 |        4434340 |             0 |
| 256 |   39672538 |       8861756 |       1123530 |        7428850 |        309376 |
|-----+------------+---------------+---------------+----------------+---------------|


#+NAME: rrm_base_set_noline1
#+begin_src python :results value silent :exports none :var rrm_base_set=rrm_base_set
return rrm_base_set
#+end_src

#+begin_src R :var rrm_base_set=rrm_base_set_noline1 :colnames t :exports none :cache no
rrm_base_set$set=factor(rrm_base_set$set,ordered=TRUE)
rrm_base_set_ratio=rrm_base_set%>%mutate(fast_write_ratio=`fast.write`/40000000, refresh_write_ratio=`total.refresh`/40000000)
#+end_src

org-babel-disassemble-tables 实现有问题, org-babel-del-hlines 调用晚了, 应该在一开始就调用, 毕竟我认为 :hlines no 要去除 hlines, 应该一开始就去除. 将

(when (and hlines (not (equal hlines "yes")))
            (setq var (cons (car var) (org-babel-del-hlines (cdr var)))))

放到 org-babel-disassemble-tables 中 lambda 函数一开始处, 果然不再报错.