2013-07-22 126 views
1

我有一個for循環,因爲某些原因我添加了一行代碼時被忽略。我已經獨立測試了代碼行,並單獨測試了for循環,並且兩者均按預期工作。在某些情況下,程序忽略R中的循環

下面是代碼:

onestar <- 0 
twostar <- 0 
threestar <- 0 
fourstar <- 0 
paste(ccdata[1,3],"*") 
for (i in 1:ncol(ccdata)) 
{ 
    for (j in 1:nrow(ccdata)){#iterate down the list 
     cat(ccdata[j,i]) 
     if (ccdata[j,i]<=0.05){ 
      onestar <- onestar+1 
      x <- paste(ccdata[j,i],"*") 
      ccdata[j,i]<-x 
      cat(ccdata[j,i]) 
      ccdata[j,i]<-paste(ccdata[j,i],"*") 
     } 
    } 
    cat("loopsruns") 
} 
onestar 

我有與ccdata[j,i]<-paste(ccdata[j,i],"*")線的問題 - 當我刪除它,循環工作正常。當它被包含時,程序只是忽略循環。

或者,如果有一個包根據統計顯着性來標記事情,那將是非常有用的 - 我使用了Google搜索,但無法找到任何東西。

+0

兩點:1行'膏(ccdata [1,3], 「*」)'未保存結果的任何地方; 2.行'ccdata [j,i] < - paste(ccdata [j,i],「*」)'將矩陣'ccdata'轉換爲'character',導致比較ccdata [j,i] <= 0.05 '詞法* *即將第一個「0.05」轉換爲字符串「」0.05「'。 –

+0

啊,非常感謝,我沒有意識到這是一個詞彙比較,也解決了我後來遇到的一些問題。 – orange1

回答

1

您可以使用symnum函數根據統計顯着性創建標籤。例如,如果pvals是p值的矢量:

symnum(pvals, cutpoints = c(0, 0.001, 0.01, 0.05, 0.1, 1), 
     symbols = c("***", "**", "*", ".", " ")) 
相關問題