我已经创建了一些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的问题!
答案 0 :(得分:63)
由于这应该仅用作交互式代码,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))
}
答案 1 :(得分:42)
另请参阅?menu
中的utils
以获取简单的文本基本菜单界面和提示,该提示也在devtools
中使用。
以下是一个例子:
> menu(c("Yes", "No"), title="Do you want this?")
Do you want this?
1: Yes
2: No
Selection:
答案 2 :(得分:7)
由于这个问题是从死里复活的,所以可能会写一个更新的答案。
如果GUI在这种情况下非常有用,那么Shiny软件包现在可以很好地与RStudio集成,并且很容易将其实现为Shiny应用程序。网站http://shiny.rstudio.com包含更多信息,包括示例和文档。
答案 3 :(得分:5)
对于这种特殊情况可能有点过分,但swirl
包有利于交互式地将R引入初学者。
swirl是R编程语言的软件包 R控制台进入交互式学习环境。用户收到 通过自学课程引导他们的即时反馈 数据科学和R编程。
有关生成内容的说明,请访问:http://swirlstats.com/instructors.html。