R에 데이터를 입력하는 프롬프트 / 응답 시스템 만들기


84

나는 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이 질문하도록 만드는 방법에 대해 잘 모르겠습니다!

답변:


74

이것은 대화 형 코드로만 사용되어야하기 때문에 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))

}

3
코드가 훌륭하게 작동합니다! 시작하는 방법에 대해 약간 혼란 스러웠지만 readline ()에 대한 메모를 살펴본 후 위의 "if (interactive ()) fun ()"에 마지막 한 줄을 추가하면 자동으로 프롬프트가 시작됩니다. 감사!
Vinterwoo

1
이거 좋다. 그러나 unlist 및 strsplit 함수에서 무슨 일이 일어나고 있는지 정확히 이해하려고 노력해 왔습니다. 여기서 R은 무엇을하고 있습니까?
Seanosapien

1
@Seanosapien strsplit은 원래 예제에서와 같이 사용자가 ' "4,3,2,1"'을 입력하는 경우 입력에서 쉼표를 제거하는 데 필요합니다. 입력이 해당 형식이 아닌 경우에는 필요하지 않습니다.
Lauren Fitch

62

에서도 사용되는 간단한 텍스트 기본 메뉴 인터페이스 및 프롬프트 는 ?menufrom utils을 참조하십시오 devtools.

다음은 그 예입니다.

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

1: Yes
2: No

Selection:

7

이 질문은 죽은 사람에게서 돌아 왔기 때문에 아마도 업데이트 된 답변을 쓰고있을 것입니다.

이 경우 GUI가 도움이된다면 Shiny 패키지는 이제 RStudio와 잘 통합되어 있으며이를 Shiny 애플리케이션으로 구현하기가 매우 쉽습니다. http://shiny.rstudio.com 웹 사이트 에는 예제와 문서를 포함한 더 많은 정보가 있습니다.


5

이 특별한 경우에는 과잉 일 수 있지만 swirl패키지는 R을 초보자에게 대화식으로 소개하는 데 좋습니다.

swirl은 R 콘솔을 대화 형 학습 환경으로 바꾸는 R 프로그래밍 언어 용 소프트웨어 패키지입니다. 사용자는 데이터 과학 및 R 프로그래밍에 대한 자기 주도형 수업을 통해 안내되는 즉시 피드백을받습니다.

콘텐츠 생성에 대한 지침은 http://swirlstats.com/instructors.html 에서 찾을 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.