【问题标题】:How to display message in r?如何在r中显示消息?
【发布时间】:2013-10-28 06:28:08
【问题描述】:

我有一个数据框根据某些条件显示错误(请参见下文)。如果所有单元格中都出现“false”,我想显示一条消息(例如,失败)

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

我尝试了下面的代码,但它不起作用

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

【问题讨论】:

    标签: r if-statement


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      我想你想要的是:

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

      "FALSE" 是一个字符串。 FALSE 是一个布尔值。

      【讨论】:

      • 您可能还想包含all 以检查是否所有值都是FALSE。现在,可能只会在if 语句中检查第一个值并发出警告。
      • 关于包括 all if all (dataframe_name == FALSE),我收到一条消息_[1]“失败”_是否意味着它已检查所有值或 [1] 表示它只检查了第一个值?
      • @user2926956 你能用更相关的代码更新你的问题吗?
      猜你喜欢
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 2023-04-05
      • 2015-11-05
      • 2011-03-25
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      相关资源
      最近更新 更多