You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarto导入CSV文件时触发vecseq()错误的排查求助

问题

尝试将MIMIC III数据库导出的CSV文件导入Quarto时持续报错,数据集可能存在重复值(如基于subject-ids的"FEMALE / MALE"重复项),曾尝试缩小数据集但未解决问题。

使用的代码

#| warning: false
#| echo: false
library(data.table)
library(flextable)
fread("mimic_admissions.csv") |>
  flextable(cwidth = c(1, 1, 1, 4)) |>
  fontsize(size = 8)

报错信息

Quitting from lines 84-89 [unnamed-chunk-3] (test2.qmd)
Error in `vecseq()`:
! Join results in 836 rows; more than 285 = nrow(x)+nrow(i). Check for duplicate key values in i each of which join to the same group in x over and over again. If that's ok, try by=.EACHI to run j for each group to avoid the large allocation. If you are sure you wish to proceed, rerun with allow.cartesian=TRUE. Otherwise, please search for this error message in the FAQ, Wiki, Stack Overflow and data.table issue tracker for advice.
Backtrace:
  1. global .main()
  2. execute(...)
  3. rmarkdown::render(...)
  4. knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
  5. knitr:::process_file(text, output)
     ...
 27. flextable:::knit_to_latex(x, bookdown = is_bookdown, quarto = is_quarto)
 28. flextable:::gen_raw_latex(...)
 30. data.table::merge.data.table(...)
 32. data.table:::`[.data.table`(...)
 33. data.table:::vecseq(...)

错误原因分析

  • 这个错误是data.table的笛卡尔积安全限制触发:从报错回溯可以看到,flextable在生成LaTeX格式输出时,内部调用了data.table::merge.data.table()函数。你的数据中存在重复键值,导致合并操作产生了远超预期的笛卡尔积行数(836行远大于nrow(x)+nrow(i)=285),触发了data.table默认的行数上限限制。
  • 数据集里的重复值是核心诱因:比如你提到的subject-ids关联的重复性别记录,在flextable内部处理数据时,合并操作会对这些重复键值进行全量匹配,进而生成大量冗余行,触发限制。
  • 缩小数据集无效的原因:即使是子集数据里依然存在重复键值,只要重复键值未被清理,内部合并就会触发这个报错。

内容的提问来源于stack exchange,提问作者Nikki Yu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 08:35:19