Использование dplyr :: select внутри функции для выбора фиксированного столбца из нескольких фреймов данных - PullRequest
2 голосов
/ 22 марта 2019

Я пытаюсь определить функцию, которая использует dplyr::select для выбора столбца с одинаковым именем в нескольких фреймах данных, поэтому имя столбца не должно быть релевантным вводом для пользователя. Например, я хотел бы, чтобы что-то подобное работало для любого фрейма данных, в котором есть столбец «Sepal.Length»:

sel_Sepal.Length <- function(df) {
        # The code we are looking for...
}

Так что я могу применить это

sel_Sepal.Length(iris)

Чтобы получить такой результат:

    Sepal.Length
1            5.1
2            4.9
3            4.7
4            4.6
5            5.5
...          ...

Мне известен этот ответ на похожую проблему. Но разница в том, что я хотел бы, чтобы функция работала без ввода имени столбца, которое должно быть исправлено внутри кода функции.

Возможно, это можно считать тривиальным вопросом, поскольку можно заставить пользователя ввести имя столбца и заставить его работать:

selectvar <- function(df, var) {
        var <- enquo(var)
        df %>%
                select(!!var)
}

selectvar(iris, Sepal.Length)

    Sepal.Length
1            5.1
2            4.9
3            4.7
4            4.6
5            5.5
...          ...

Но я думаю, что мне не хватает концепции, поэтому я не могу заставить ее работать так, как я просил (без ввода столбца, который нужно выбрать). Это вопрос, который задают только ради поиска этой недостающей концепции. Надеюсь, что это может помочь другим. Заранее спасибо!

1 Ответ

0 голосов
/ 22 марта 2019

Возможно, я неправильно понял ваш вопрос;поскольку вы явно хотите, чтобы имя столбца было жестко запрограммировано внутри функции (по крайней мере, это то, что я понял из «Я бы хотел, чтобы функция работала без ввода имени столбца, которое должно быть исправлено в коде функции»)) вы могли бы сделать

sel_Sepal.Length <- function(df) {
    df %>% select(Sepal.Length)
}

Но это означает, что на самом деле нет особого смысла для всей функции.

Возможно, вы сможете уточнить весь смысл упражнения?

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