Можно ли в dplyr указать, куда добавить новый столбец, используя mutate? - PullRequest
0 голосов
/ 25 апреля 2018

В настоящее время я должен использовать add_column, чтобы напрямую вставить новый столбец в нужную позицию, или использовать mutate, затем select с новым желаемым порядком столбцов.

mips.group <- str_extract(mips.manifest$PlateName, "[:alnum:]+_([[:alnum:]&&[^P]]+(_CL)?)?|(KORgex)")

mips.manifest %<>%
  add_column(MIPSGroup=mips.group, .after="PlateName")

Можно ли напрямую указать mutate, куда добавить новый столбец, и если нет, есть ли причина для этого?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

На странице github dplyr есть запрос на добавление функции по этому вопросу. Вы можете прочитать об этом здесь . Но пока это осталось как есть.

Но вы всегда можете добавить свои соображения к дискуссии.

0 голосов
/ 25 апреля 2018

Глядя на код mutate, кажется, что это будет нелегко, поскольку в конечном итоге он погружается в C-функцию:

> mutate
function (.data, ...) 
{
    UseMethod("mutate")
}
<environment: namespace:dplyr>
> methods(mutate)
[1] mutate.data.frame* mutate.default*    mutate.tbl_df*    
see '?methods' for accessing help and source code
> getAnywhere(mutate.tbl_df)
A single object matching ‘mutate.tbl_df’ was found
It was found in the following places
  registered S3 method for mutate from namespace dplyr
  namespace:dplyr
with value

function (.data, ...) 
{
    dots <- named_quos(...)
    mutate_impl(.data, dots)
}
<environment: namespace:dplyr>
> mutate_impl
Error: object 'mutate_impl' not found
> getAnywhere(mutate_impl)
A single object matching ‘mutate_impl’ was found
It was found in the following places
  namespace:dplyr
with value

function (df, dots) 
{
    .Call(`_dplyr_mutate_impl`, df, dots)
}
<environment: namespace:dplyr>

Кажется сомнительным, что изменения будут приветствоваться, поскольку у вас уже есть работоспособное решение.

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