r:使用mapply函数到两个列表

时间:2017-06-14 11:40:47

标签: r mapply

我有两个列表dd1dd2。样本数据是:

DD1:

  > dd1
$`1`
  [1] 9.882462e-02 5.036365e-02 9.677686e-02 1.917278e-01 1.930706e-01 4.859976e-02
$`2`
  [1] 4.825651e-02 1.353690e-02 1.061587e-02 6.770033e-03 9.190913e-02 6.863396e-02
$`3`
  [1] 2.165620e-01 1.582611e-01 3.448556e-02 6.652456e-02 4.511841e-02 1.346382e-02
$`4`
  [1] 4.858856e-02 3.385838e-02 5.187566e-02 6.467315e-02 2.876072e-02 9.523681e-02
$`5`
  [1] 0.0418527703 0.0149859021 0.0059625537 0.0133805085 0.0670249342 0.0383909791

DD2:

> dd2
    $`1`
      [1] 1 0 0 1 1 0
    $`2`
      [1] 1 0 1 1 0 0
    $`3`
      [1] 1 0 0 1 0 0
    $`4`
      [1] 0 1 0 0 0 0
    $`5`
      [1] 0 1 0 1 0 0

我想将ROC函数应用于两个vector中的五个lists中的每一个,例如,我可以对每个{ROC函数使用vector函数1}},它有效。

    library(pROC)
    roc1<-roc(as.factor(unlist(dd2$`1`)), dd1$`1`)
    roc2<-roc(as.factor(unlist(dd2$`2`)), dd1$`2`)
    roc3<-roc(as.factor(unlist(dd2$`3`)), dd1$`3`)
    roc4<-roc(as.factor(unlist(dd2$`4`)), dd1$`4`)
    roc5<-roc(as.factor(unlist(dd2$`5`)), dd1$`5`)

但我认为应该可以使用函数mapplyroc函数应用于两个vectors中的每个lists,然后返回五roc一次只能得到code个结果。我想mapply函数会自动将函数应用于列表中的每个向量。我将mapply(function(x,y) roc(as.factor(unlist(x)),y), dd2, dd1) 写为

{{1}}

它不起作用。谁能告诉我如何解决它?

(请点击链接dd1和dd2获取数据)

0 个答案:

没有答案