の場合、オブジェクトの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
HighValuesオブジェクトはリストタイプのもので、条件に関係なく毎回カウンターが増加します。LowValuesは2番目のIf条件であり、ここで追加していない場合、上記のコードは** True/False not foundエラー**を生成します。私はc1とc2を設定しようとしましたが、動作しません。私はまだなぜか不思議です。 –
関数に渡すデータの種類の小さな例を投稿できますか? –