【问题标题】:remove rows when it contains empty cells in r当它包含 r 中的空单元格时删除行
【发布时间】:2020-11-12 11:05:12
【问题描述】:

我有一个包含空单元格的大数据框 (Y) -> "" 或 NaN 甚至 N/A 我尝试使用以下命令清空数据框:

Y <- na.omit(mutate_all(Y, ~ifelse(. %in% c("N/A", "null", ""),  NA, .)))

但不知何故,这会将所有值转换为整数(甚至是非数字列)。

由于保密原因,我无法共享数据框或其中的一部分,但请告诉我这个问题是否听起来很熟悉,以及您是如何设法解决的。

【问题讨论】:

  • 您可以创建一个可重现的小型 data.frame 来最好地描述您的问题

标签: r


【解决方案1】:

也许你可以使用:

type.convert(data.frame(gsub('^N/A$', '', trimws(as.matrix(Y))))

请注意,type.convert(c('', 'NaN', 'NA', 8, 9)) 会将向量转换为数字。唯一的问题是N/A 字符串

【讨论】:

  • 这后跟 na.omit() 命令对我有用
【解决方案2】:

也许您的数据中有导致问题的因素。您可以将该函数仅应用于数据中的字符和因子列。

library(dplyr) #dplyr > 1.0.0

Y %>%
  mutate(across(where(~is.character(.) | is.factor(.)), 
                ~as.character(ifelse(. %in% c("N/A", "null", ""),  NA, .)))) %>%
  na.omit() -> Y

【讨论】:

    猜你喜欢
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    相关资源
    最近更新 更多