2013-02-28 15 views
19

私は13の列(PCと呼ばれる)からなる行列を持っています。私は4と8の間の値を持つ行だけを含む新しい行列を作りたい(EURと呼ばれる)。 ...複数の条件を持つR: `which`ステートメント

誰でも、このコマンドを使用して、間違っているものを知っている(何百もある一方で私は、1行を出す)

EUR <- PCs[which(PCs$V13 < 9 && PCs$V13 > 3), ] 

、残念ながら動作しません:私はこの文を使用してみましたか?

+1

サンプルデータは他の人があなたの質問に答えるのを助けるかもしれません。 –

+0

@Abdel Ryan Thompsonのように、&、&&、|、||についての説明を探すことができますマニュアルに記載されています。 – sikisis

答えて

31

&&関数はベクトル化されていません。あなたは&関数が必要です:

EUR <- PCs[which(PCs$V13 < 9 & PCs$V13 > 3), ] 
+2

ええ、マニュアルでは、「&と&&は論理ANDを示し、|と||は論理ORを示します」という短い書式は、算術演算子とほとんど同じ方法で要素ごとの比較を実行します。各ベクトルの最初の要素。評価は結果が決定されるまで続きます。より長い形式はプログラミングフローに適しており、通常はif節で優先されます。 – sikisis

関連する問題