【问题标题】:R: select columns with NAs for mutate functionR:为变异函数选择具有 NA 的列
【发布时间】:2019-03-12 14:16:34
【问题描述】:

我正在尝试对我的数据框中的列进行子集化,以便仅在 mutate 函数中使用它们,作为具有 knitr::kable 和 kableExtra 的 HTML 表的条件格式的一部分。

#Conditional Formating function
highlights <- function(x) { cell_spec(x, background = ifelse( x != NA, "#C9FFE5","white")) }

#build table
ds.tab <- ds%>%
  mutate_if("column contains ANY NA values", funs(highlights(.)))%>% ...

我需要在 R 中写括号之间的位(“列包含任何 NA 值”)。

谢谢!

【问题讨论】:

  • is.na

标签: r na dplyr


【解决方案1】:

如果你使用any(is.na(.)),它应该可以工作,例如:

ds.tab <- ds %>%
  mutate_if(function(x) any(is.na(x)), funs(highlights(.))) %>% ...

或者,如果您愿意,以下语法的工作方式相同

ds.tab <- ds %>%
  mutate_if(~any(is.na(.)), funs(highlights(.))) %>% ...

【讨论】:

  • 不需要任何其他参数或任何东西,不需要funs()mutate_if(~any(is.na(.)), highlights) 应该可以正常工作。
  • 谢谢,但一切都返回: if (substr(color, 1, 1) != "#" | nchar(color) != 9) return(color) 中的错误:缺少 TRUE 的值/FALSE 需要
  • 那是你的highlights 函数中的一个问题。试试is.na(x)(而不是x != NA
猜你喜欢
  • 1970-01-01
  • 2019-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多