2013-10-02 49 views
0

我有我的工作流程有點敲竹槓的,因爲我試圖做一個雙迴路,以填補一個矩陣的工作。在我的劇本開始,我定義:了重新分類矩陣雙環填補另一個不工作

Tijd_SAT_i <- c("08", "09", "10", "11", "12", "13", "14") 
D <- c(0, 0.01, 0.02, 0.03, 0.04, 0.05) 
POD <- matrix(1:(length(Tijd_SAT_i)*length(D)), c(length(Tijd_SAT_i), length(D))) 
FAR <- matrix(1:(length(Tijd_SAT_i)*length(D)), c(length(Tijd_SAT_i), length(D))) 

之後的東西負載創建(42 86 7陣列)「基地」和「SAT」(86 42 7陣列)。 BASE和SAT都包含0到22之間的值作爲雙打,並且具有NA值(NA值表示荷蘭的概況以及除此之外的所有內容)。接下來,我需要填寫兩個矩陣POD(檢測概率)和FAR(誤報率​​)對於每個小時(Tijd_SAT_i),我想計算6個不同的閾值及其對POD和FAR的影響。稍後我會將這些值放入一個數據框中,然後使用RGL來繪製它們。我已經寫做填補POD和FAR代碼:

for (k in 1:(length(Tijd_SAT_i))) { 
    for (l in 1:(length(D))) { 
    pre_C_BASE <- BASE[,,k] 
    pre_C_SAT <- SAT[,,k] 
    pre_C_BASE[pre_C_BASE >= D[l]] <- 1 
    pre_C_BASE[pre_C_BASE < D[l]] <- 0 
    pre_C_SAT[pre_C_SAT >= D[l]] <- 1 
    pre_C_SAT[pre_C_SAT < D[l]] <- 0 
    C_SAT <- as.vector(SAT) 
    C_BASE <- as.vector(BASE) 
    C_table <- (with(warpbreaks, table(C_SAT, C_BASE)))  
    print(C_table) 
    print(dim(C_table)) 
    #p <- C_table[1, 1]/(C_table[1, 1]+C_table[2, 1]) 
    #f <- C_table[1, 2]/(C_table[1, 1]+C_table[1, 2]) 
    #POD[k, l] <- p 
    #FAR[k, l] <- f 
    } 
} 

但C_table不會成爲2矩陣而是一個由1237 3351一爲一些模糊的原因2。 #s背後的東西因此無法執行。我在哪裏出錯了?

編輯:我發現對於2×2矩陣沒有顯示的原因:一個錯誤的參考SAT應pre_C_SAT。 現在我的意外事故矩陣(全部42個)。現在的問題是,如果我用#s運行該位,會出現「下標越界」錯誤。這是爲什麼?

編輯:我覺得麻煩就在於「表」並不總是輸出一個2×2矩陣。

編輯:Pffffrwt。我修好了它。在表格命令中有一個令人難以置信的煩人的嘀嗒聲,因爲當一個輸入向量中不存在零時,它不會返回2乘2的矩陣。我已經通過將1,0,0,1和1,0,0,1,0附加到隨後的矢量來解決它,強制創建所有4個值,然後從後面的等式中減去1。

回答

0

我已經通過附加1,0,0,1和1,0,1,0到隨後的載體,強制創建的所有4個值,然後從後續方程從其減去1固定的問題。

0

在循環的每次迭代中,將定義

C_SAT <- as.vector(SAT) 
C_BASE <- as.vector(BASE) 

所以C_SATC_BASE將總是等於分別SATBASE尺寸的產品向量與長度。

然後定義

C_table <- (with(warpbreaks, table(C_SAT, C_BASE))) 

什麼是warpbreaks數據幀與您的分析呢?你是否從某處複製並粘貼了這些內容?它對結果沒有影響。

反正table(C_SAT, C_BASE)將有多達排在C_SAT和唯一值的列數唯一值的C_BASE數的數量。

+0

是的,我已經從這個例子中複製warpbreaks,table命令:[link](http://stackoverflow.com/questions/7442207/contingency-table-with-r)。它應該創建一個2×2的連貫表,但事實並非如此。大概是因爲 pre_C_BASE [pre_C_BASE> = d [1]] < - 1 等不創建與僅1和0的新矩陣。也許我應該刪除NAs? – user2807278