Не рекомендуется использовать оператор "$" в программировании, поскольку он не оценивает свой аргумент, в отличие от более общего "[["
currentRun = "run287"
dataFrame[[currentRun]]= someVar # and the";" is superflous
> dat <- data.frame(foo = rnorm(10), bar = rnorm(10))
> myVar <- "bar2"
> bar2 <- 1:10
> dat[[myVar]] <- bar2
> str(dat)
'data.frame': 10 obs. of 3 variables:
$ foo : num -1.43 1.7091 1.4351 -0.7104 -0.0651 ...
$ bar : num -0.641 -0.681 -2.033 0.501 -1.532 ...
$ bar2: int 1 2 3 4 5 6 7 8 9 10
Что будет успешно, если свойства (в частности, длины) myVar верны. Было бы неправильно говорить, что datFrame $ currentRun эквивалентен dataFrame $ run287, но верно, что символьные переменные могут интерпретироваться как имена столбцов. Существует также конструкция eval (parse (text = "...")), но ее лучше избегать, если это возможно.