提问人:Mohamed Rahouma 提问时间:8/7/2023 最后编辑:TylerHMohamed Rahouma 更新时间:8/7/2023 访问量:24
重塑/转换研究水平的荟萃分析为个体患者数据荟萃分析
Reshape/convert study-level meta-analysis to individual patients data meta-analysis
问:
我有研究级别的荟萃分析数据,我想将其重塑/转换为患者级别的数据
这是我的数据示例
data2<-read.table(text="STUDY TOTAL POAF Age_POAF
CRESWELL, 1993 3983 1378 99
ARANKI, 1996 570 189 77
KOLVEKAR, 1997 50 25 NA
ALMASSI, 1997 3855 1143 66.8
TAMIS, 2000 216 55 NA
STAMOU, 2000 969 206 69
HAKALA, 2002 3676 1141 63.9
HRAVNAK, 2002 814 260 69.6
SILVA, 2004 158 45 NA
VILLAREAL, 2004 6475 994 66
",header=T, sep="\t")
我希望它创建 3983 行(总病例数),所有这些行在研究列和 POAF 中都标记为“CRESWELL,1993”,前 1378 行(POAF 的病例数)应标记为 or,而其余为 or ,并且所有行的列都为 99,然后我们移动到原始数据的第二行并创建 570 行Yes
1
No
0
Age_POAF
例如,如下所示
STUDY TOTAL POAF Age_POAF
CRESWELL, 1993 3983 Yes 99
CRESWELL, 1993 3983 Yes 99
CRESWELL, 1993 3983 Yes 99
CRESWELL, 1993 3983 Yes 99
... ... .... ... ....
ARANKI, 1996 570 Yes 77
ARANKI, 1996 570 Yes 77
ARANKI, 1996 570 Yes 77
... ... .... ... ....
答:
2赞
benson23
8/7/2023
#1
您可以先在列中展开数据集,然后通过简单的赋值来分配正确的值。uncount()
TOTAL
ifelse
POAF
library(tidyverse)
uncount(data2, TOTAL, .remove = F) |>
mutate(POAF = ifelse(row_number() <= POAF, "Yes", "No"), .by = STUDY)
一些示例行:
STUDY TOTAL POAF Age_POAF
1376 CRESWELL,1993 3983 Yes 99
1377 CRESWELL,1993 3983 Yes 99
1378 CRESWELL,1993 3983 Yes 99
1379 CRESWELL,1993 3983 No 99
1380 CRESWELL,1993 3983 No 99
1381 CRESWELL,1993 3983 No 99
...
3982 CRESWELL,1993 3983 No 99
3983 CRESWELL,1993 3983 No 99
3984 ARANKI,1996 570 Yes 77
3985 ARANKI,1996 570 Yes 77
3986 ARANKI,1996 570 Yes 77
评论