r语言 - 使用减号删除变量和选择那些想要的变量有什么区别?



在软件包dplyr中,使用负符号删除变量并选择那些想要的变量有什么区别?

例如:K1具有6个变量,第一个变量称为" ID"我想删除第一个变量。 K2 <- select(K1, -"id")
and K2 <- select(K1, 2:6)

那么这两者有什么区别?

感谢您回答

它们本质上是两种做同一件事的方法。在您给出的示例中,结果是相同的。但是,在向select提供其他参数时,如果第一个参数使用负符号,则会有所不同。从帮助:

如果第一个表达式为负,则选择()将自动从所有变量开始。

所以,这些示例都给出了相同的结果。

library(dplyr)
foo <- data.frame(X = c(1,2,3),
                  Y = c(4,5,6),
                  Z = c(7,8,9))
select(foo, -X)   # Retains columns Y and Z
select(foo, Y, Z) # Retains columns Y and Z
select(foo, -1)   # Retains columns Y and Z
select(foo, 2:3)  # Retains columns Y and Z

但是这些结果不同:

select(foo, -X, Y) # Retains columns Y and Z
select(foo, Y, -X) # Retains column Y

基本上,select(foo, -X, Y)的意思是"从foo的所有列开始,除了X,然后将Y添加到其中。"但是添加Y没有效果,因为它已经包含在"除X之外的所有列中"中。因此,结果与select(foo, -X)相同。

,而select(foo, Y, -X)的意思是"从foo开始列Y,然后删除X列。"但是,由于您仅从Y列开始,因此删除X没有效果,因为它已经被排除在外。因此,结果与select(foo, Y)相同。

最新更新