在子集中排除一组观察

时间:2015-09-23 13:53:54

标签: r subset

假设我有生物特征的数据。我想根据物种对数据进行子集化。我有50种物种,我想通过排除一个物种(例如两栖动物)来进行分组。什么命令可以帮助我做到这一点? 一种方法是通过明确地在子命令中明确写出所有物种的名称,如下所示

sub <- subset(data, species %in% c("species1,species2,...,species50))  #all species excluding amplhibians.

但这将是一个非常繁忙的过程。如何使用subset命令获取结果? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

简单:只是否定测试:

sub <- subset(data, ! species %in% 'amphibians')

或者,因为您只想排除一个物种:

sub <- subset(data, species != 'amphibians')

请注意,前缀 - !在R中的运算符优先级与其他语言不同:在几乎所有其他编程语言中,第一段代码需要在species %in% 'amphibians'测试周围使用括号。在R中,这不是必需的:! a %in% b相当于! (a %in% b)