【发布时间】:2017-04-03 18:25:50
【问题描述】:
我正在尝试在整个数据帧上使用逻辑运算符过滤数据帧,并且不知何故 NA 行在子集数据帧中蔓延。我已经查看了Subsetting R data frame results in mysterious NA rows 和Subsetting R data frame results in mysterious NA rows,但我无法找到或找到解决方案。
df <- data.frame(number1 = c(1:5,-13,-2,-34,24,33), number2 = c(10:3, -73, -82))
df
df[df>=0 & !is.na(df$number2),]
我正在尝试过滤,以便在原始数据框中的任何行中都没有负值。我最终得到 18 行 df 和多个 NA 行。
我尝试在我的 df 上使用 sapply 来检查逻辑操作是否正常。但如果我用 "which" 换行,我会得到所有 18 行。
sapply(names(df), function(x) df[x]>=0)
我的目标是在任何列中获得一个没有负值的 df。
编辑:在我的情况下,我不知道结果 df 在过滤它们之前会有多少列。因此,使用 & 运算符单独过滤列是不可能的。这正是我试图应用逻辑运算符或整个 df 的原因
【问题讨论】: