【发布时间】:2020-10-18 08:06:46
【问题描述】:
我编写了一个函数来检查字符串是否为空(或仅包含空格)。但是,当我尝试将其应用于数据框时,该函数只会为每一列返回一次 FALSE。我希望该函数的工作方式类似于单独评估数据帧的每个元素的 is.na() 函数。
is_empty <- function(x) {
result <- gsub(" ", "", x)
ifelse(is.na(result), return(FALSE), return(result == ""))
}
> is_empty("") # TRUE
> is_empty(" ") # TRUE
> is_empty(0) # FALSE
> is_empty(NA) # FALSE
> is_empty("foo") # FALSE
> df = data.frame(c("",2,""), c(4, " ", 6), c("", 8, 9), c(1,2,4))
> is_empty(df)
[1] FALSE FALSE FALSE FALSE
> is.na(df)
c.....2..... c.4........6. c.....8..9. c.1..2..4.
[1,] FALSE FALSE FALSE FALSE
[2,] FALSE FALSE FALSE FALSE
[3,] FALSE FALSE FALSE FALSE
(我知道 NA 意味着我们不知道元素是否为空,但出于实际原因,我希望它为 FALSE。)
我的函数减去 gsub() 函数按预期工作,但该函数只能检测没有空格的空单元格。
【问题讨论】:
标签: r