Answers:
my.data.frame <- subset(data , V1 > 2 | V2 < 4)
模仿此功能的行为并且更适合包含在功能体内的替代解决方案:
new.data <- data[ which( data$V1 > 2 | data$V2 < 4) , ]
有人批评which
不需要使用,但是这样做确实会阻止NA
值返回不必要的结果。上面展示的两个选项的等效项(即,对于V1或V2中的任何NA不返回NA行)which
将是:
new.data <- data[ !is.na(data$V1 | data$V2) & ( data$V1 > 2 | data$V2 < 4) , ]
注意:我要感谢匿名贡献者试图修复上面代码中的错误,该错误被主持人拒绝。在更正第一个错误时,实际上我发现了另一个错误。如果要按我的意图处理,则需要首先检查NA值的条件子句,因为...
> NA & 1
[1] NA
> 0 & NA
[1] FALSE
使用“&”时,参数的顺序可能很重要。
[
则需要包装which
或使用其他!is.na
约束。
which
。如果V1和V2均为NA,则如果您将省略,则会在该位置得到一排NA which
。我使用的是大型数据集,即使NA的相对较少,也确实会用垃圾输出填满我的屏幕。有人认为这是一个功能。我不。
grepl
或grep
与此相关的调用以对所需的行进行模式匹配?