Строка кавычки в команде замены 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')")))
Это, однако, выглядит немного неуклюжим.
Есть ли более элегантные способы сделать это? В конце концов, я хотел бы обернуть это в функцию и сделать ее еще более общей.
Любая помощь / предложение будет высоко ценится.
С уважением,
Стефан