虽然这应该非常简单,但我遇到了readline函数分配变量的问题。
fun <- function(x){
x <- readline(prompt="Please choose your color 'red, blue, yellow' ")
if (x=="red") {
x<-1}
else if (x=="blue") {
x<-2}
else if (x=="yellow") {
x<-3}
else {print("Please choose the color provided above")}
return(x)
}
对我来说,这个简单的代码肯定会有效。虽然它似乎正常工作,但代码不会将新变量(1,2或3)分配给x。当我运行代码时,它确实返回x的新值,但不存储新的x值。如果我的代码中有任何错误,你能帮帮我吗?非常感谢提前。
答案 0 :(得分:1)
你还没有展示出你是如何使用这个功能的,但我猜你正在尝试这样称呼它:
x = foo()
但你应该做的是这样称呼它:
x
(并且x
不需要事先存在:你没有覆盖现有变量,而是创建一个新变量。)
实际上,函数的参数 fun = function() {
x = readline(prompt="Please choose your color 'red, blue, yellow' ")
switch(x, red = 1, blue = 2, yellow = 3,
stop('Please choose a color provided above'))
}
是不必要的(你没有使用它)。此外,您的功能可以大大简化:
{{1}}