创build提示/答复系统,将数据input到R中

我创build了一些R代码供R谁不知道的人使用(虽然我自己很绿)。 我一直在让人们将最初的数据粘贴到R控制台(结果混杂),我希望能够为用户input数据build立更友好的用户界面。

理想情况下,有人可以坐在控制台上,键入一个命令,并提示有关如何input数据的具体问题。

例如,一个人加载r并看到一个提示:

What is x value? 

该人input:

 2 

下一个提示:

 What is y value? 

人员types:

 3 

下一个提示:

  What are T values? 

人员types:

  4,3,2,1 

下一个提示:

什么是V值?

人员types:

 4,5,6,9 

而这4个新定义的variables(X,Y,T,V)R的下一步就是运行预写的代码

 X+Y V+T 

在控制台中popup答案

 5 8 8 8 10 

大家都很开心

我的道歉,因为这不是一个可重复的代码types的问题,但我不知道如何处理让R问问题,而不是我问问关于R!

由于这只是作为交互式代码使用, readline()可以为你工作。 我没有添加任何错误检查,但你可能要做相当数量,以确保正确的input。 以下是核心概念:

 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)) } 

另请参阅?menu utils中的?menu ,以获取简单的文本基本菜单界面和提示,这也在devtools

这里是一个例子:

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

由于这个问题是从死亡中带回来的,所以可能会写一个更新的答案。

如果在这种情况下GUI是有用的,那么Shiny包现在已经与RStudio很好的集成在一起,并且将它作为一个Shiny应用程序很容易实现。 网站http://shiny.rstudio.com有更多的信息,包括例子和文档。;

对于这个特殊的情况,这可能是过度的,但是这个swirl包对于初学者来说是交互式地介绍R的好帮手。

漩涡是R编程语言的一个软件包,将R控制台变成一个交互式的学习环境。 用户可以通过数据科学和R编程的自学课程获得即时反馈。

生成内容的说明可以在这里find: http : //swirlstats.com/instructors.html 。