2013-10-28 81 views
-4

我有一個數據框顯示錯誤(請參閱下面)根據一定的條件。我想顯示的消息(比如,失敗),如果「假」出現在所有細胞如何在r中顯示消息?

a b c 
1 FALSE FALSE FALSE 
2 FALSE FALSE FALSE 
3 FALSE FALSE FALSE 

我嘗試下面的代碼,但它不工作

if (dataframe_name=="false") 
print(fail) 

回答

0

我想什麼你想要的是:

if(dataframe_name == FALSE) 
    print("fail") 

"FALSE"是一個字符串。 FALSE是一個布爾值。

+0

您可能還想包含'all'來檢查所有的值是否都是'FALSE'。現在,大概只有第一個值會在'if'語句中被檢查並帶有警告。 –

+0

on include ** all ** ** if all(dataframe_name == FALSE)**,我得到一條消息_ [1]「fail」_does這意味着它檢查了所有的值或[1]表明它檢查了第一個值? – user2926956

+0

@ user2926956你可以用更相關的代碼更新你的問題嗎? –

1

這裏是一個替代考慮。 (1)向您展示「message」函數,(2)向您展示如何創建一個最小可重現的例子,(3)如何編寫一個簡單的函數,以及(4)爲您提供一個工作答案因爲現有的答案是不正確的。

df1 <- data.frame(a = c(FALSE, FALSE), b = c(FALSE, FALSE)) 
df2 <- data.frame(a = c(FALSE, TRUE), b = c(FALSE, FALSE)) 

checkMe <- function(inDF) { 
    if(!any(inDF == TRUE)) message("false") 
    else message(paste0((sum(inDF == TRUE)/prod(dim(inDF)))*100, "% true values")) 
    inDF 
} 

checkMe(df1) 
# false 
#  a  b 
# 1 FALSE FALSE 
# 2 FALSE FALSE 
checkMe(df2) 
# 25% true values 
#  a  b 
# 1 FALSE FALSE 
# 2 TRUE FALSE