2016-02-01 2 views
1

Я довольно новичок в программировании R и хочу захватить ввод в клавиатуру для выполнения дополнительных программных кодов. Поскольку код, приведенный здесь, выполняется, все работает хорошо, но когда выход введен, программа завершается и не печатает y и z.команда readline в R не выполняет дополнительные строки программирования

Не могли бы вы посоветовать мне использовать команду readline в цикле и выполнять другие программные строки после этого цикла?

n=1 
a=1 
y=c() 
z=c() 
x="" 

while(x!="exit"){ 

     x<-readline("Enter your name ") 
     library(stringr) 

     if(x!="exit" & str_detect(x,"N")){ 

      y[n]=x 
      n=n+1 

      }else{ 

       z[a]=x 
       a=a+1 

       } 


} 

print(y) 
print(z) 
+0

благодарит за ваш ответ. Я просто запускаю этот код с терминала, и проблема отличается от ссылки, которую вы подключили. В моем коде после ввода выхода программа заканчивается и не выполняет строки после {} скобок, в этом случае print (y) и print (z). веселит. –

ответ

0

Этот код работает. Я скопировал его в foo.R файл, как так:

# in "foo.R" 
n = 1 
a = 1 
y = character() 
z = character() 
x = "" 
library(stringr) 
while (x!="exit") { 
    x <- readline("Enter your name\n") 
    if (x!="exit" & str_detect(x,"N")) { 
     y[n] = x 
     n = n+1 
    } else { 
     z[a] = x 
     a = a+1 
    } 
} 
print(y) 
print(z) 

А потом, с моей R консоли (с правильной рабочей директории), я могу запустить:

source("foo.R") 
# Enter your name 
# Bob 
# Enter your name 
# Nate 
# Enter your name 
# exit 
# [1] "Nate" 
# [1] "Bob" "exit" 

и, кажется, работает только хорошо.

+0

@ Vongo, спасибо большое. Я попытался запустить ту же программу из R-терминала, что и все работает хорошо, как вы заметили, но пока я запускаю ту же программу в RStudio, это вызывает у меня проблемы, как я описал ранее. Вы знаете, в чем проблема? –

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

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