【问题标题】:Applying var.test to every row将 var.test 应用于每一行
【发布时间】:2015-11-16 22:39:43
【问题描述】:

给定一个数据框,其中 colnames 具有示例标识符(即 G1 和 G2),我想对每一行执行 var.test() 并将一些结果存储在一个新矩阵中。

>dat
           GSM475355_G1    GSM475367_G0    GSM475370_G0   GSM475373_G1   GSM475376_G0    GSM475381_G1     GSM475383_G1     GSM475385_G1
27411     -0.89388704      0.01987934      0.38278532     0.071681020     0.373300080    -0.455644130     -0.18787241      0.65458155
35558      1.74279880      0.54368210     -0.24144077     0.307267200    -0.059902190    -0.052984238      0.13823795      0.20645618
43304      1.94601350     -0.05378771      0.02680111    -0.065221310     0.130765910    -0.090313435     -0.05756617     -0.02083588
33721     -0.29451323      0.01806831     -0.08260250     0.140903470    -0.006454945    -0.128416540      0.05237675     -0.03429079
8310      -0.79846334      1.00792070     -0.35607958     0.378528120     0.081913950     0.112047670     -0.34938622      0.25825214
46204     -3.02495300      0.07315350      0.79066850     0.091570854     0.428258900     0.565763500      0.18908596      0.88739204
21809      0.07164812      0.06946850      0.00000000    -0.005378723    -0.081427574    -0.009929657      0.15938330     -0.05795145
23277     -0.19507313      0.22079802     -0.11173201    -0.139470100    -0.059999466     0.159433840     -0.23357010     -0.02099037

我的尝试是使用apply,但它似乎不起作用,为了简单起见,我尝试了下面的一些变体.例如

G1<-dat[,grep("G1", colnames(dat))]

应用尝试:

apply(G1, 1 ,var.test, y = G0)
apply(as.numeric(G1),as.numeric(G0),1, var.test))

还有其他一些没有成功的变体。我什至尝试了一行,例如(G1[1,])来测试该功能。

【问题讨论】:

  • 什么“似乎不起作用”?请分享错误消息(如果存在)以支持这个模糊的句子。
  • 有不同的错误消息,具体取决于我在上述尝试中使用错误的尝试,但 match.fun(FUN) 中的错误:缺少参数“FUN”,没有默认值
  • 只做类似的事情怎么样:apply(dat, 1, function(x) var.test(x[grep("G1", colnames(dat))], x[grep("G0", colnames(dat))]) )
  • @thelatemail 我收到以下错误Error in var.test.default(x[grep("G1", colnames(dat))], : not enough 'x' observations

标签: r apply


【解决方案1】:

感谢@thelatemail 为我指明了正确的方向!出于某种原因,您似乎需要使用as.numeric 才能使其正常工作。

dat$F.test <- apply(dat, 1, function(x)  var.test(as.numeric(x[grep("G1", colnames(dat))]), as.numeric(x[grep("G0", colnames(dat))]))[1])

【讨论】:

    猜你喜欢
    • 2013-03-18
    • 2014-04-30
    • 1970-01-01
    • 2019-09-08
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多