Строка кавычки в команде замены R

Я хотел бы знать, возможно лизакрывать кавычки строка, переданная в выражение с помощью команды замены.

В частности, я использую dplyr для фильтрации и выбора из фрейма данных:

    > w
       subject sex response
    1        1   M    19.08
    2        2   M    16.46
    ...     ...  ...  ...
    6        6   M    23.60
    7        7   M    23.96
    8        8   F    22.48
    9        9   F    25.79
    ...     ...  ...  ...
    16      16   F    26.66

Следующее дает желаемый результат:

    > w %.% filter(sex == "M") %.% select(response)        
      response
    1    19.08
    2    16.46
    3    22.81
    4    18.62
    5    18.75
    6    23.60
    7    23.96

Но я хочу сделать это в более общем смысле. Следующее не дает требуемого результата, так как строка «пол» заключена в кавычки.

подставить (w%.% фильтр (y == "M"), список (y = вставить (names (w) [2])))

    w %.% filter("sex" == "M")
    > eval(substitute(w %.% filter(y == "M"), list(y = paste(names(w)[2]))))
    [1] subject  sex      response
    <0 rows> (or 0-length row.names)

Я всегда могу сделать следующее:

    eval(parse(text = paste("w %.% filter(", names(w)[2], " == 'M')")))

Это, однако, выглядит немного неуклюжим.

Есть ли более элегантные способы сделать это? В конце концов, я хотел бы обернуть это в функцию и сделать ее еще более общей.

Любая помощь / предложение будет высоко ценится.

С уважением,

Стефан

Ответы на вопрос(1)

Ваш ответ на вопрос