我正在尝试使用 R 中的 dosresmeta 函数执行剂量反应元分析。这是我使用的语法:
TyG_BMI <- dosresmeta(formula = logrr ~ dose, type = type, id = id, se = se, cases = cases, n = n, data = TyG_BMI)
但是,我收到以下错误:
Error in `diag<-`(`*tmp*`, value = 1) :
only matrix diagonals can be replaced
有人可以帮助我了解导致此错误的原因以及如何解决吗?这是我正在使用的数据集:
TyG_BMI <- data.frame(
author = c("Wang", "Wang", "Wang", "Wang", "Wang", "Kim", "Kim", "Kim", "Kim", "Li", "Li", "Li", "Li", "Zhang", "Zhang", "Zhang", "Zhang"),
id = c(1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4),
type = c("CS", "CS", "CS", "CS", "CS", "CS", "CS", "CS", "CS", "PCS", "PCS", "PCS", "PCS", "CS", "CS", "CS", "CS"),
dose = c(1.000, 4.030, 10.810, 25.520, 74.760, 1.000, 3.500, 8.630, 25.340, 1.000, 4.718, 15.062, 38.242, 1.000, 2.400, 6.400, 15.300),
cases = c(11, 56, 198, 612, 1630, 91, 413, 960, 1826, 7, 35, 185, 614, 22, 90, 278, 567),
n = c(2850, 2850, 2851, 2849, 2851, 2646, 2647, 2646, 2646, 2435, 2406, 2257, 1828, 1000, 1000, 1000, 1000),
logrr = c(0.0000000, 1.3937660, 2.3804720, 3.2394620, 4.3142830, 0.0000000, 1.2527630, 2.1552450, 3.2323840, 0.0000000, 1.5513850, 2.7121750, 3.6439340, 0.0000000, 0.8754688, 1.8562980, 2.7278530),
lb = c(1.000, 2.030, 5.630, 13.360, 38.860, 1.000, 2.750, 6.830, 19.930, 1.000, 1.387, 4
我已经尝试了所有故障排除步骤,但仍然找不到解决方案