我想在一个简单的问题上从用户的答案中创建一个变量 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 。
拜托,你能帮助我吗,我做错了什么?提前谢谢。
答案 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,确保您想要的是什么。如果您希望它也可以在全球环境中使用,请改用<<-
。