【问题标题】:error of unused argument(T) in ifelse in RR中ifelse中未使用的参数(T)的错误
【发布时间】:2020-11-15 06:25:35
【问题描述】:

我尝试用 ifelse 反转布尔向量:

labels <- disease%>% 
  select(humansAffected)%>%
  is.na()%>%
  ifelse(T, F,T)

但是,我收到一个错误:ifelse(., labels == T, F, T) 中的错误:未使用的参数 (T) 即使我改为:

labels <- disease%>% 
    select(humansAffected)%>%
    is.na()%>%
    ifelse(labels==T,"FALSE","TRUE")

它显示错误:ifelse(., labels == T, "FALSE", "TRUE") 中的错误:未使用的参数 ("TRUE")。

但是当我这样写的时候,我得到了我想要的结果:

labels <- disease%>% 
  select(humansAffected)%>%
  is.na()
ifelse(labels==T,F,T)

我想知道为什么我用%>%把它们写在一起时得不到答案?

【问题讨论】:

标签: r if-statement


【解决方案1】:

如果没有数据样本,很难准确理解您需要什么,但我希望这个示例能够为您指明正确的方向。

library(dplyr)
disease %>% 
    select(humansAffected) %>%
    filter(!is.na(humansAffected)) %>%
    mutate(humansAffected = ifelse(humansAffected == TRUE, FALSE, TRUE))

【讨论】:

    【解决方案2】:

    如果您希望最终数据框中只有一列,请使用 transmute。您可以否定is.na 以获取FALSE 用于NATRUE 用于非NA。

    library(dplyr)
    disease <- disease %>% transmute(new_col = !is.na(humansAffected))
    

    在基础 R 中,您可以这样做:

    disease <- transform(disease, new_col = !is.na(humansAffected))
    

    然后选择所需的列。

    【讨论】:

      猜你喜欢
      • 2016-10-25
      • 2021-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多