Подтвердить что ты не робот

Создание системы Prompt/Answer для ввода данных в R

Я создал некоторый R-код для использования людьми, которые ничего не знают о R (хотя я довольно зеленый сам). У меня были люди вставлять исходные данные в консоль R (со смешанными результатами), и я надеялся создать более удобный для пользователя способ ввода данных.

В идеале, кто-то может сесть за консоль, ввести команду и запросить конкретные вопросы о том, как вводить данные.

Например, человек загружает r и видит приглашение:

What is x value?

Человек вводит:

2

Следующее приглашение:

What is y value?

Типы лиц в:

3

Следующее приглашение:

 What are T values?

Типы лиц в:

 4,3,2,1

Следующее приглашение:

Что такое значения V?

Типы лиц в:

4,5,6,9

И с этими 4 новыми определенными переменными (X, Y, T, V) R следующим шагом будет запуск предварительно написанного кода

X+Y
V+T

И в консоли появляются ответы

5
8 8 8 10

И все счастливы

Извиняюсь за то, что это не вопрос воспроизводимого кода, но я не уверен, как подойти к заданию вопросов R, а не задавать вопрос о R!

4b9b3361

Ответ 1

Так как это предполагается использовать только в качестве интерактивного кода, readline() может работать на вас. Я не добавлял никаких проверок ошибок, но вы, вероятно, захотите сделать достаточно много, чтобы обеспечить правильный ввод. Вот основная концепция:

fun <- function(){
  x <- readline("What is the value of x?")  
  y <- readline("What is the value of y?")
  t <- readline("What are the T values?")
  v <- readline("What are the V values?")

  x <- as.numeric(unlist(strsplit(x, ",")))
  y <- as.numeric(unlist(strsplit(y, ",")))
  t <- as.numeric(unlist(strsplit(t, ",")))
  v <- as.numeric(unlist(strsplit(v, ",")))

  out1 <- x + y
  out2 <- t + v

  return(list(out1, out2))

}

Ответ 2

См. также ?menu из utils для простого текстового интерфейса и подсказки меню, который также используется в devtools.

Вот пример:

> menu(c("Yes", "No"), title="Do you want this?")
Do you want this? 

1: Yes
2: No

Selection:

Ответ 3

Поскольку этот вопрос был возвращен из мертвых, он, вероятно, написал обновленный ответ.

Если графический интерфейс вообще полезен в этом случае, пакет Shiny теперь хорошо интегрирован с RStudio, и было бы очень легко реализовать это как приложение Shiny. На веб-сайте http://shiny.rstudio.com содержится больше информации, включая примеры и документацию.

Ответ 4

Это может быть излишним для этого конкретного случая, но swirl пакет хорош для интерактивного введения R новичкам.

swirl - программный пакет для языка программирования R, который превращает консоль R в интерактивную среду обучения. Пользователи получают немедленную обратную связь, поскольку они ориентируются на самостоятельные уроки в области науки о данных и программирования R.

Инструкции по созданию контента можно найти здесь: http://swirlstats.com/instructors.html.

Ответ 5

Могу ли я ввести исходные входные данные в пакете "MI" или "MICE" с множественным вменением "R" с собой? Фактически, я хочу ввести значения исходных 5 входов отсутствующих данных, которые вставляются самой программой со значениями или методами. Спасибо