[R聲明閱讀註釋部分,然後進行以下更改後,我仍然得到一個,而不是一個「失敗」「成功」:如果使用多個參數
nrow(statedata)
[1] 100
num = -1
if(num != "best" & num != "worst" & num < 1 & num > nrow(statedata))
print("Failure!?")
else <br />
print("Success!")
[1] "Success!"
[R聲明閱讀註釋部分,然後進行以下更改後,我仍然得到一個,而不是一個「失敗」「成功」:如果使用多個參數
nrow(statedata)
[1] 100
num = -1
if(num != "best" & num != "worst" & num < 1 & num > nrow(statedata))
print("Failure!?")
else <br />
print("Success!")
[1] "Success!"
找到了解決辦法:
if(num != "best" & num != "worst" & (num < 1 | num > nrow(statedata)))
感謝所有! 乾杯。
邏輯錯誤很難找到。
最好接受@ ak0053792發佈的答案,不要將其重新發布爲您自己的答案。 – Thomas
但它沒有解決問題,我的答案是這樣,它是不同的。 – codehitman
由於條件:
if(num != "best" | num != "worst" | num < 1 | num > length(10))
您應該在否定中使用AND而不是OR,否則其他語句將始終爲真。我希望你在這裏明白我的觀點。
啊,是的,謝謝,這是一個愚蠢的問題。 – codehitman
毫無疑問,啞巴,夥伴。我之前堅持這種情況。我想你從經驗中學習。快樂學習。 – ak0053792
謝謝,實際上它應該是num> nrow(statedata)。我在測試並更正此問題後閱讀了您的評論。這是一個更大功能的一部分,我試圖排除故障。 – codehitman
請注意,'|'和'&是矢量化的。對於單個比較,您可能需要考慮'||'和'&&'。 – Jeroen
@Jeroen當應用於長度> 1的向量時,'&&'和'||'靜靜地使用第一個元素。 'if'在這種情況下發出警告,所以可能使用'&'和'|'作爲首選。 –