使用 MendelianRandomization 从自己的数据创建一个新对象
Create a new object from own data using MendelianRandomization
我需要在 R 的孟德尔随机化包中使用我自己的数据创建一个对象。它指示使用函数 'mr_input' 逐个槽地创建一个 'MRInput' class 对象槽通过下面的例子。
MRInputObject <- mr_input(bx = ldlc,
bxse = ldlcse,
by = chdlodds,
byse = chdloddsse)
有人可以帮助我如何使用 mr_input 函数创建自己数据的对象吗?
这是包说明的 link:
https://cran.r-project.org/web/packages/MendelianRandomization/vignettes/Vignette_MR.pdf
我的数据是 .txt 格式,看起来像这样;
> dput(head(Sample_MR_data,10))
structure(list(SNP = c("SNP_1", "SNP_2", "SNP_3", "SNP_4", "SNP_5", "SNP_6", "SNP_7", "SNP_8", "SNP_9", "SNP_10"), exposure.beta = c(-0.0062, -0.034, -0.0052, -0.028, 0.0076, 0.013, -0.0094, 0.0011, -0.024, -0.023), exposure.se = c(0.017, 0.016, 0.016, 0.016, 0.024, 0.02, 0.024, 0.02, 0.028, 0.018), outcome.beta = c(0.0026, 0.026, -0.023, -0.017, 0.012, 0.03, -0.0048, 0.026, -0.033,-0.0046),outcome.se = c(0.017, 0.03, 0.018, 0.037, 0.034, 0.02, 0.022, 0.034, 0.033, 0.017)),row.names = c(NA, 10L), class = "data.frame")
关键是让您的数据与 mr_input
定义的数据相同 slots
。使用 coursedata
。您可以使用 getSlots("MRInput")
.
找到可用的插槽
mr_input(bx=coursedata$bx,bxse=coursedata$bxse,by=coursedata$by,
byse=coursedata$byse)
SNP exposure.beta exposure.se outcome.beta outcome.se
1 snp_1 0.1357 0.0676 -0.00855 0.0875
2 snp_2 0.4938 0.1015 0.25656 0.1325
3 snp_3 0.3476 0.1015 0.27784 0.1316
4 snp_4 0.0679 0.0980 0.17189 0.1265
使用规范方式:
new("MRInput",betaX=1,betaY=2,snps="snp_10")
结果:警告,因为我还没有用完所有插槽:
Vectors do not all have the same length. SNP LDL-c.beta LDL-c.se CHD.beta CHD.se
1 snp_10 1 0.004 2 0.0286
2 snp_10 1 0.004 2 0.0300
3 snp_10 1 0.004 2 0.0310
4 snp_10 1 0.003 2 0.0243
5 snp_10 1 0.003 2 0.0222
6 snp_10 1 0.006 2 0.0667
我需要在 R 的孟德尔随机化包中使用我自己的数据创建一个对象。它指示使用函数 'mr_input' 逐个槽地创建一个 'MRInput' class 对象槽通过下面的例子。
MRInputObject <- mr_input(bx = ldlc,
bxse = ldlcse,
by = chdlodds,
byse = chdloddsse)
有人可以帮助我如何使用 mr_input 函数创建自己数据的对象吗? 这是包说明的 link: https://cran.r-project.org/web/packages/MendelianRandomization/vignettes/Vignette_MR.pdf
我的数据是 .txt 格式,看起来像这样;
> dput(head(Sample_MR_data,10))
structure(list(SNP = c("SNP_1", "SNP_2", "SNP_3", "SNP_4", "SNP_5", "SNP_6", "SNP_7", "SNP_8", "SNP_9", "SNP_10"), exposure.beta = c(-0.0062, -0.034, -0.0052, -0.028, 0.0076, 0.013, -0.0094, 0.0011, -0.024, -0.023), exposure.se = c(0.017, 0.016, 0.016, 0.016, 0.024, 0.02, 0.024, 0.02, 0.028, 0.018), outcome.beta = c(0.0026, 0.026, -0.023, -0.017, 0.012, 0.03, -0.0048, 0.026, -0.033,-0.0046),outcome.se = c(0.017, 0.03, 0.018, 0.037, 0.034, 0.02, 0.022, 0.034, 0.033, 0.017)),row.names = c(NA, 10L), class = "data.frame")
关键是让您的数据与 mr_input
定义的数据相同 slots
。使用 coursedata
。您可以使用 getSlots("MRInput")
.
mr_input(bx=coursedata$bx,bxse=coursedata$bxse,by=coursedata$by,
byse=coursedata$byse)
SNP exposure.beta exposure.se outcome.beta outcome.se
1 snp_1 0.1357 0.0676 -0.00855 0.0875
2 snp_2 0.4938 0.1015 0.25656 0.1325
3 snp_3 0.3476 0.1015 0.27784 0.1316
4 snp_4 0.0679 0.0980 0.17189 0.1265
使用规范方式:
new("MRInput",betaX=1,betaY=2,snps="snp_10")
结果:警告,因为我还没有用完所有插槽:
Vectors do not all have the same length. SNP LDL-c.beta LDL-c.se CHD.beta CHD.se
1 snp_10 1 0.004 2 0.0286
2 snp_10 1 0.004 2 0.0300
3 snp_10 1 0.004 2 0.0310
4 snp_10 1 0.003 2 0.0243
5 snp_10 1 0.003 2 0.0222
6 snp_10 1 0.006 2 0.0667