Использование eval (parse (text = ...)) воспринимается большинством опытных программистов с подозрением.Если цель состоит в том, чтобы получить доступ к существующему объекту R, имеющему несколько имен столбцов, то это будет предпочтительным подходом:
Предположим, что ваш пользователь знает, что mtcars
находится в рабочей области, и что это имена переменныхявляются:
Вам также нужна функция для ожидания ввода;в противном случае readline
просто получает пустое символьное значение и переходит к следующей строке кода.Смотрите более ранний ответ по этому вопросу: Заставьте readline ждать ввода в R
#Warning: this does not seem to work in RStudio because they assign stdin to /dev/null
my.table <- cat("Enter name of table: "); readLines("stdin", n=1); cat( "\n")
my.variable <- cat("Enter name of variable 1: "); readLines("stdin",n=1); cat( "\n")
my.variable2<- cat("Enter name of variable 2: "); readLines("stdin",n=1);cat( "\n")
my.obj <- get(my.table)
surv_object <- Surv(time = my.obj[my.variable1], event = my.obj[my.variable2])
Если бы я не использовал имя объекта (ввод в качестве значения символа) для доступа и назначенияимя, которое было предопределено, было бы большой PITA, чтобы всегда использовать символ «имя», так как имена R (AKA symbol
) на самом деле не заключаются в кавычки, так как они не имеют типовой символ, а скорее типа «язык».
В RStudio мне как-то нужно создать функцию для ввода.Но я не получил проверенную версию для успеха.Может быть, для этого нужен блестящий интерфейс?