【问题标题】:R - remove rows from a data frame with empty lines (not only numbers)R - 从具有空行的数据框中删除行(不仅是数字)
【发布时间】:2016-03-07 23:55:45
【问题描述】:

这个问题似乎已经解决了,但经过检查我找不到任何解决方案。我从一个文件加载一个表,它可能(不知道如何)某些整行是空的。所以当我得到数据框时,我得到了

  #   id c1 c2
  # 1  a  1  2
  # 2  b  2  4
  # 3    NA NA
  # 4  d  6  1
  # 5  e  7  5
  # 6    NA NA

如果我这样做

apply(df, 1, function(x) all(is.na(x))

我得到了所有FALSE,因为第一列不是数字(混合字符和数字列的表格要大得多),我无法过滤这些行。还有na.omitcomplete.cases 我无法解决。 是否有任何函数或表达式来检查空行?

【问题讨论】:

    标签: r parsing row


    【解决方案1】:

    你可以通过传递给read.csv的参数从源头上解决这个问题:

    例如,如果空格是一个空格或空格,您可以使用

    df <- read.csv(<your other logic here>, na.strings=c("NA","", " ")
    

    这个问题似乎提出了类似的问题:read.csv blank fields to NA

    如果这可行,那么您可以使用应用逻辑来处理有问题的行。

    【讨论】:

    • 那么做相反的事情,用NA替换黑色空格,然后应用逻辑?
    • 是的,对我来说,链接问题与您的问题绝对不同,但是它带来了一些选项,例如 na.strings 参数,我相信这些选项可以解决您的问题。您能否发布导致问题的文件的摘录,然后也许我可以找出更具体的内容?
    • 其实你是完全正确的!!使用na.strings我可以通过NA设置空数据,然后我可以使用apply函数!非常感谢!
    • 很高兴帮助@Stefano!
    猜你喜欢
    • 2016-03-13
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 2021-10-13
    • 2023-02-11
    相关资源
    最近更新 更多