我對R相當新。我在R中使用ROCR軟件包來計算AUC,我可以對一個預測器做的很好。我期望做的是對100個不同的變量進行許多AUC計算。計算R中的許多AUC
我迄今所做如下:
varlist <- names(mydata)[2:101]
formlist <- lapply(varlist, function(x) paste0("prediction(",x,"mydata$V1))
但是那麼公式是文本格式,並as.formula是給我的錯誤。任何幫助感謝!提前致謝!
我對R相當新。我在R中使用ROCR軟件包來計算AUC,我可以對一個預測器做的很好。我期望做的是對100個不同的變量進行許多AUC計算。計算R中的許多AUC
我迄今所做如下:
varlist <- names(mydata)[2:101]
formlist <- lapply(varlist, function(x) paste0("prediction(",x,"mydata$V1))
但是那麼公式是文本格式,並as.formula是給我的錯誤。任何幫助感謝!提前致謝!
lapply
中的函數看起來像是輸出一個像prediction(varmydata$V1)
這樣的語句。我猜你實際上是想運行那個命令。如果是這樣,你可能想要類似
lapply(varlist,function(x) prediction(mydata[x]))
但是很難說沒有可重現的情況。此外,它看起來像你的代碼有一個缺少的報價。
如果我的理解正確,您希望使用mydata
的第一列作爲預測,並將所有其他變量作爲標籤一個接一個地使用。
這是治療mydata
的正確方法嗎?這種方式很少見。對於幾種不同的預測(例如迭代交叉驗證,不同分類器的比較),具有相同的真實標籤更爲常見。
然而,要回答你原來的問題:
predictions
和labels
需要具有相同的形狀ROCR::prediction
,例如
無論是作爲基質
prediction (matrix (rep (mydata$V1, 10), 10), mydata [, -1])
或列表:
prediction (mydata [rep (1, ncol (mydata) - 1)], mydata [-1])
你可以使用一個循環與和保存在一個矢量eacha值。此外,pROC包將更好地爲您的問題! – Duck 2013-05-13 22:28:22
你的'lapply'裏面的函數看起來就像輸出一個像'prediction(varmydata $ V1)'這樣的語句。我猜你實際上想要*運行*該命令。如果是這樣,你可能需要'lapply(varlist,function(x)prediction(mydata ['x']))'',但是很難說沒有可重現的情況。此外,它看起來像你的代碼有一個缺少的報價。 – nograpes 2013-05-13 22:37:27
感謝您的幫助!你用方括號解決了它(你寫的是我缺少一個報價)。 – user2379487 2013-05-13 23:02:33