Как использовать строковую переменную для выбора столбца фрейма данных, используя $ notation [duplicate]

На этот вопрос уже есть ответ:

Динамически выбирайте столбцы фрейма данных, используя $ и вектор имен столбцов 8 ответов

Из чтения, которое я делал с R, я могу выбрать столбец во фрейме данных любым из этих двух методов: frame [, column] или frame $ column. Однако, когда у меня есть строка в качестве переменной, она работает только в первом. Другими словами, учтите следующее:

У меня есть фрейм данных, tmp, подмножество большего фрейма данных ответов на вопросы. V1 - идентификатор респондента, Q5.3 - ответ, 1 или 0:

            V1 Q5.3
2 R_bdyKkzWcvBxDFTT    1
3 R_41wnKUQcM8mUW2x    0
4 R_2ogeykkgbH2e4RL    1
5 R_8D4jzMBfYO0M0ux    1
6 R_3KPgP2pxWROnip7    1

str(tmp)

'data.frame':   5 obs. of  2 variables:
     $ V1  : Factor w/ 364 levels "R_0039orNoOoWaDQx",..: 256 116 70 201 95
     $ Q5.3: num  1 0 1 1 1

Теперь я определяю переменную x, которая содержит строку имени одного из столбцов.

x<-"Q5.3"

tmp [, x] возвращает то, что, по-моему, должно возвращаться:

tmp[,x]

[1] 1 0 1 1 1

tmp $ "Q5.3" возвращает то, что, по-моему, должно возвращаться:

tmp$"Q5.3"

[1] 1 0 1 1 1

tmp $ x однако возвращает

tmp$x

NULL

Как я могу сказать R интерпретировать tmp $ x как tmp $ "Q5.3".

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

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