在软件包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)
相同。