В чем разница между удалением переменной с помощью знака минус и выбором этих требуемых переменных? - PullRequest
0 голосов
/ 20 декабря 2018

В пакете dplyr, в чем разница между удалением переменной с помощью знака минуса и выбором этих требуемых переменных?

Например: в K1 есть 6 переменных, а первая называется "id".удалить первую переменную. K2 <- select(K1, -"id")<br> and K2 <- select(K1, 2:6)

Так в чем же разница между этими двумя?

Спасибо, что ответили

1 Ответ

0 голосов
/ 20 декабря 2018

По сути, это два способа сделать одно и то же.В приведенных вами примерах результат точно такой же.Но при предоставлении дополнительных аргументов select имеет значение, если первый аргумент использует знак минус.Из справки:

Если первое выражение отрицательное, 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, а затем добавить * 1017».* к этому."Но добавление Y не имеет никакого эффекта, поскольку оно уже было включено в «все столбцы, кроме X».Таким образом, результат такой же, как select(foo, -X).

. Принимая во внимание, что select(foo, Y, -X) означает «Начать со столбца Y с foo, а затем удалить столбец X».Но поскольку вы только начали со столбца Y, удаление X не имеет никакого эффекта, поскольку оно уже было исключено.Таким образом, результат такой же, как select(foo, Y).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...