【问题标题】:R, remove rows with empty strings from data.frame across all columnsR,从所有列的data.frame中删除带有空字符串的行
【发布时间】:2014-07-04 14:28:12
【问题描述】:

我想从数据框中删除所有可用列的长度为零的所有行。我尝试使用 complete cases 函数,但它不起作用,可能是某些字符串有空白空格。因此,我想搜索 data.frame 的所有列并删除所有在可用列之一中具有空字符串的行。我的数据框定义为 ladata

# Remove incomplete cases
ladta <- ladta[complete.cases(ladta),]

【问题讨论】:

  • 代码不起作用,错误是Error: unexpected ']' in "ladta &lt;- ladta[-apply(ladta, 1, function(x) any(x==""),]"。关于数据是一个简单的表格,有 3 列 230K 行和各处的空格。
  • 感谢您的 cmets :) 它帮助了
  • 如果没有NA 值,则案例是完整的。您可能会更改读取数据的方式,以便获得 NA 而不是空字符串值。

标签: string r dataframe


【解决方案1】:

试试

 ladta <- ladta[!apply(ladta, 1, function(x) any(x=="")),] 

这里,apply 将每一行都提供给any,它检查表达式x==""(它本身是一个向量)对于任何元素是否为真,如果是,则返回TRUE。整个apply 表达式因此返回TRUE/FALSE 语句的向量,这些语句被! 否定。这可以用来对您的数据进行子集化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-25
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    相关资源
    最近更新 更多