2016-07-15 44 views
0

我有一張表可以跟蹤數據收集過程中發生的錯誤。如果沒有錯誤,則Error列中的條目爲「無」。我試圖以統計數據幀中的條目數,其中Error != 'None' 這會工作:當沒有錯誤可言計數沒有條目時的條目數

ErrorCount<-subset(df, Error != 'None') 
ErrorCount <- ErrorCount$Error 
ErrorCount <- as.data.frame(table(ErrorCount)) 
ErrorCount <- sum(ErrorCount[,2]) 

除外。它不能計算空表。任何建議如何我可以使這個返回0當沒有結果在Error != 'None'

+3

你應該嘗試'subset(df,Error =='None')'? – rawr

+1

另外,像'if(nrow(ErrorCount)== 0)ErrorCount < - 0; else最後一行中的ErrorCount < - sum(ErrorCount [,2])'應該工作。 – lmo

+0

另一種選擇:'table(df $ Error)['None']'如果錯誤列中沒有'None',則會給出NA。但是我不能讓你的4行代碼最終調用'table'來對它進行初始化。 – Tensibai

回答

0

使用常規子集。我做了一個函數,創建一個隨機表:

set.seed(313) 

make_error_table <- function(prob){ 

data.frame(Data = rnorm(10), 
      Error = sample(c("Error", "None"), replace = TRUE, prob = prob)) 
} 

tab1 <- make_error_table(c(0.5, 0.5)) 
tab2 <- make_error_table(c(1, 0)) 

sum(tab1$Error == "None") 
[1] 5 
sum(tab2$Error == "None") 
[1] 0