🎯 什么是 clinResearchKit
clinResearchKit 是一个面向医学研究者的 R 语言工具包, 提供临床数据库的标准化分析流程。只需几行代码,即可完成从数据加载到发表级图表的全流程。
传统方式
- • 手动下载 NHANES 数据 → 合并 → 权重处理
- • 逐行写 survey 回归代码 → 调试
- • 用 ggplot2 手绘森林图 → 反复调整配色
- • 每换一个指标重新写一遍脚本
- 耗时:数天到数周
clinResearchKit
- •
nhanes_load()一键加载数据 - •
nhanes_cox()自动处理权重和回归 - •
nhanes_forest_plot()出版级森林图 - • 换一个指标只需改一个参数
- 耗时:30分钟
支持的数据库
GBD 全球疾病负担
Global Burden of Disease
分析全球 200+ 国家/地区的疾病负担趋势,计算 EAPC、APC 建模、BAPC 预测。
NHANES 美国营养健康调查
National Health and Nutrition Examination Survey
调查权重回归、RCS 非线性分析、Table 1 生成、森林图,亚组分析全覆盖。
MIMIC 重症监护数据库
Medical Information Mart for Intensive Care
SQL 查询封装、队列构建、Cox/KM 分析、CONSORT 流程图。
多国老年健康数据
CHARLS · HRS · SHARE · ELSA · 其他
跨国横向比较、Fried 衰弱评估、中介分析、Bootstrap 置信区间。
快速示例
NHANES Table 1(三线表)
# 安装与激活 install.packages("clinResearchKit_1.1.4.tar.gz", repos = NULL, type = "source") library(clinResearchKit) # 配置数据路径 locate_data("nhanes", "~/clinResearchKit-Data/NHANES") # 激活 activate("CLIN-XXXX-XXXX-XXXX") # 加载数据并生成 Table 1 data <- nhanes_merge(c("DEMO", "BMX", "BPX")) tbl <- nhanes_table1(data, strata = "DIABETES", export = "xlsx") print(tbl)
NHANES Cox 回归 + 森林图
# 创建调查设计 design <- create_nhanes_design(nhanes_data) # Cox 回归 result <- nhanes_cox(data, Surv(permth_int/12, mortstat) ~ BMI_group + age + sex) # 森林图 p <- nhanes_forest_plot(result) print(p) ggsave("forest_plot.pdf", p, width = 10, height = 6)
GBD EAPC 趋势分析
# 计算 EAPC 并绘制趋势图 eapc_result <- gbd_eapc(gbd_data, measure = "Incidence") print(eapc_result) p <- gbd_trend_line(gbd_data, measure = "Incidence", add_eapc = TRUE) print(p)
🛠️ Kimi 调试与代码修复
如果你平时在 R 里最烦的是报错、测试挂掉、文件改崩了,那这一块就是给你用的。
clinResearchKit 内置了两个 Kimi 调试入口:
一种用来直接修一段代码,另一种用来直接修整个文件。它会把现有代码、报错信息和你的目标一起交给
kimi-k2.5,默认使用 think 模式,
修完后还能顺手继续运行或重跑验证。
这个功能是什么
- • 它是给 日常 debug 用的,不是拿来凭空写研究结果的。
- • 适合处理
stop()、object not found、语法错误和testthat失败。 - • 先跑你的原始代码;能跑就直接返回,跑不通才调用模型。
- • 出错时会连同代码、报错和修复目标一起发送,让 Kimi 给出新的可执行版本。
- • 最终会把结果、最终代码、执行历史和
diff一起返回,方便你自己复核。
适合什么场景
- • 控制台刚报错,想直接接着修,不想来回复制错误信息。
- • 某个函数文件改崩了,想按文件级别整体修一遍。
- •
testthat测试失败后,想让它围绕失败点继续改代码再重跑。 - • 只记得文件名,不想每次都补完整路径,希望优先从
R/或tests/testthat/自动找。 - • 想在“允许整段重写”和“尽量保留原结构”之间切换修复策略。
两个核心函数
kimi_debug_r()
用来修你当前正在跑的一段 R 代码,也可以按一句任务描述临时生成一段新代码。 它会先执行你给的内容;如果失败,再把错误上下文交给 Kimi 接着修。
- • 支持
expr或code输入。 - • 可通过
task直接说明“要修成什么样”。 - • 默认
think = TRUE,并自动执行模型生成代码。 - • 支持
mode = "free_agent"或"strict_debug"。 - • 返回
success、result、final_code、history等字段。
kimi_debug_file()
用来直接修一个 R 源文件。你可以给完整路径,也可以只给文件名; 它会先在当前包的常见目录里找目标文件,找不到或有歧义时再明确提醒你。
- • 支持
file = "foo.R"这类裸文件名输入。 - • 优先搜索
R/、tests/testthat/等包结构。 - • 如未手工提供
bug/task,会尽量吸收最近一次控制台或testthat错误上下文。 - • 支持修完后继续跑
test_file或filter。 - • 可直接写回文件,并返回修改后的
diff方便人工复核。
怎么用
1. 修一段刚刚报错的代码
# 如果代码执行失败,Kimi 会尝试改写并自动重跑 res <- kimi_debug_r( code = "stop('boom')", task = "Repair the code so that it returns the integer 2." ) res$success res$result res$final_code
这个入口很适合控制台里的临时调试、最小复现和函数片段试错。 如果原始代码本来就能正常运行,它会直接把结果返回给你,不会多走一步。
2. 直接修一个函数文件
# 既可以给完整路径,也可以只给文件名 res <- kimi_debug_file( file = "foo.R", project_path = "/path/to/pkg", bug = "foo() 应该返回整数 2,而不是报错", mode = "free_agent" ) res$target_file res$diff
当你只提供文件名时,它会优先在当前项目的 R/ 和
tests/testthat/ 里找;如果同名文件不止一个,也会直接告诉你要选哪一个。
3. 修完后自动重跑指定测试
# 让它围绕某个测试文件继续修复并验证 res <- kimi_debug_file( file = "R/foo.R", project_path = "/path/to/pkg", test_file = "test-foo.R", filter = "foo returns integer" ) res$success res$verification
这更接近日常包开发:测试一挂,就让它围绕失败点继续修,修完马上再跑一遍。
配置说明:通常不必每次都显式传入 config_path。
如果你的配置已放在默认位置(例如 ~/.config/kimi-k25、
~/.config/kimi-default),或者已设置环境变量,
kimi_debug_r() / kimi_debug_file()
会自动读取对应的 Key、Base URL 和模型配置。
使用边界:这组函数默认聚焦“修代码”,不是凭空生成精确研究结果。
如果任务看起来在要求最终表格、图形或统计数值,但当前并没有明确的真实数据上下文,
默认的 truth_guard = "stop"
会直接停止,并明确提示“缺少真实数据,拒绝生成结果表/图”。
另外,模型生成的代码会在本地会话里执行,所以更适合在你信任的工作目录里使用,并保留最后的人手检查。
授权与定价
激活码格式:CLIN-XXXX-XXXX-XXXX,
购买后获得。当前标准流程是在本机运行 activate() 完成授权;如需换设备,建议先在旧设备执行 deactivate(confirm = TRUE) 并联系管理员协助处理。