2016-11-06 90 views
0

我想創建一個變量XO從用戶的答案在一個簡短的問題。我還希望系統寫入,用戶選擇了什麼。代碼如下所示: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" 
} 

FUN1正確創建的函數,但回答問題後(我的回答是如 「X」),系統顯示錯誤:

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

而且XO未創建。

請問,你能幫我嗎,我做錯了什麼?提前致謝。

回答

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" 
    } 
} 

您使用=fun1函數內部的XO變量分配。看看this question,以確保這就是你想要的。如果您希望它在全球環境中也可用,請改爲使用<<-

+0

謝謝你的幫助。但是,當我運行您編寫的代碼時,系統告訴我,找不到對象「XO」。你知道嗎,如何解決這個問題? – Sasanka20

0

我不確定是什麼給你這個問題!我運行了你的代碼,我得到了結果。

> X0 <- readline(prompt = "Do you want X, or O? ") 
Do you want X, or O? X 
> X0 
[1] "X" 

> X0 <- readline(prompt = "Do you want X, or O? ") 
Do you want X, or O? Q 
> X0 
[1] "Q" 

> X0 <- readline(prompt = "Do you want X, or O? ") 
Do you want X, or O? O 
> X0 
[1] "O" 

你可以分享的版本信息,

+0

@ sasanka20它完全回答你的問題嗎?介意通過http://stackoverflow.com/help/someone-answers –