我無法做IF對象的比較。當我將它們與數值進行比較時,IF工作,例如:if (c1 < c2){do something}
失敗if (c1 < 0){do something}
工作。如果陳述在R
這是我正在使用的代碼,它顯示錯誤,其中HighValues
是一個數字列表,LowValue
也是一個數字列表。我做的比較錯了嗎?
checkHS<-function(HighValues,LowValues)
{
counter<-1
patternList<-c()
while(counter < length(HighValues))
{
cmpValue1<- 0.15*HighValues[[counter]]
cmpValue2<- HighValues[[counter+1]]
if(cmpValue1<cmpValue2)
patternList<-c(patternList,counter)
counter<-counter+1
}
return (patternList)
}
我在做什麼錯?
編輯:添加一個數據集,我傳遞給函數以獲得更多的清晰度。
HighValues<-c(1:100)
LowValues<-c(2:101)
HighValues對象的類型是什麼?爲什麼你通過LowValues呢?你是否希望櫃檯有條件地或每次增加?這是非常不明確的代碼......就意圖而言。順便說一句,你的例子行應該工作正常...你是什麼意思的「不工作」?如果你將c1和c2設置爲行,他們應該做的事情。一旦你清楚這一點,你應該得到一些很好的R代碼,看起來不像你有什麼。你這樣做的方式效率很低,而且非R型。 – John 2012-01-03 06:31:31
HighValues對象是列表類型,計數器每次增量與條件無關,LowValues是第二個如果我沒有在這裏添加條件,上面的代碼生成** True/False未找到錯誤**。我確實嘗試設置c1和c2,但它不起作用。我仍然想知道爲什麼。 – 2012-01-03 06:36:36
你可以發佈一個你傳遞給函數的數據類型的小例子嗎? – 2012-01-03 06:41:01