创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 。