R - 从阅读线创建变量

时间:2016-11-06 13:12:04

标签: r

我想在一个简单的问题上从用户的答案中创建一个变量 XO 。我也想要系统写,用户选择了什么。代码如下所示:

fun1 <- function() {
XO <- readline(prompt = "Do you want X, or O? ")
if (substr(XO, 1, 1) == "X")
  cat("You have chosen X.\n") & XO = "X"
 else
  cat("You have chosen O.\n") & XO = "O"
} 

函数 fun1 是正确创建的,但在回答问题后(我的答案是例如“X”),系统显示错误:

Error in cat("You have chosen X.\n") & XO = "X" : 
  target of assignment expands to non-language object

未创建 XO

拜托,你能帮助我吗,我做错了什么?提前谢谢。

1 个答案:

答案 0 :(得分:0)

R中,&仅用于逻辑分配,而不是用于连接句子。 你想要做的是将那段代码放在大括号{}内的块中,并将它们分成不同的行。如果条件为真,R将在大括号内运行孔块。

fun1 <- function() {
  XO <- readline(prompt = "Do you want X, or O? ")
  if (substr(XO, 1, 1) == "X") {
    cat("You have chosen X.\n")
    XO <<- "X"
  } else {
    cat("You have chosen O.\n")
    XO <<- "O"
  }
}

您正在使用=XO功能中分配fun1变量。看看this question,确保您想要的是什么。如果您希望它也可以在全球环境中使用,请改用<<-