2016-07-18 4 views
0

Хотя это должно быть очень просто, у меня возникает проблема с функцией readline для назначения переменных.Назначение переменной с помощью функции readline в R?

fun <- function(x){ 
x <- readline(prompt="Please choose your color 'red, blue, yellow' ") 
if (x=="red") { 
    x<-1} 
else if (x=="blue") { 
    x<-2} 
else if (x=="yellow") { 
    x<-3} 
else {print("Please choose the color provided above")} 
return(x) 
} 

Для меня этот простой код обязательно должен работать. Хотя кажется, что он работает правильно, код не присваивает новую переменную (1, 2 или 3) в x. Когда я запускаю код, он возвращает новое значение x, но новое значение x не сохраняется. Не могли бы вы мне помочь, если в моем коде есть какие-либо ошибки? Большое спасибо заранее.

ответ

1

Вы не показали, как вы используете функцию, но я предполагаю, что вы пытаетесь назвать это что-то вроде этого:

foo(x) 

Но то, что вы должны делать это вызов это нравится:

x = foo() 

x не нужно заранее существовать:. вы не перезаписать существующую переменную, вы создаете новый)

Фактически, аргумент x функции не нужны (вы не используете его). Кроме того, ваша функция может быть значительно упрощена:

fun = function() { 
    x = readline(prompt="Please choose your color 'red, blue, yellow' ") 
    switch(x, red = 1, blue = 2, yellow = 3, 
      stop('Please choose a color provided above')) 
} 
+0

Ahhh Спасибо! Я новичок в R, и такие небольшие проблемы всегда меня пугают. Спасибо за компактный (и лучший) код. – sh2657

 Смежные вопросы

  • Нет связанных вопросов^_^