使用MendelianRandomization根据自己的数据创建一个新对象

时间:2019-04-26 12:50:53

标签: r s4

我需要使用R中的孟德尔随机化包中的我自己的数据创建一个对象。它指示使用函数'mr_input'逐个创建一个'MRInput'类对象,接着是下面的示例。

    MRInputObject <- mr_input(bx = ldlc, 
                      bxse = ldlcse, 
                      by = chdlodds, 
                      byse = chdloddsse)

有人可以帮助我如何使用mr_input函数创建自己的数据对象吗? 这是包装说明的链接: 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")

1 个答案:

答案 0 :(得分:1)

关键是使您的数据与slots定义的数据相同。使用mr_input。您可以使用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")