2011-12-15 3 views
3

2つの列AとBが等しいデータフレームで行を選択したいと思います。私はこれを試しました:2つの列が等しいデータフレームの行を検索

A <- c(0,1,2) 
B <- c(2,1.000001,0) 
df <- as.data.frame(cbind(A,B)) 
subset(df,A==B) # does not work 
# [1] A B 
# <0 rows> (or 0-length row.names) 
subset(df,round(A,3)==round(B,3)) # does work 
# A  B 
# 2 1 1.000001 
subset(df,A==B) 

これは宿題ではありません。ありがとう。

+0

-1曖昧な "did not work" - エラーメッセージ? –

+0

これを再現可能な例にしてください...曖昧さのために+1 –

+1

この場合、次の出力を意味する "did not work"が返されます:<0 rows>(または長さ0の行番号) –

答えて

12
mteq <- mtcars[mtcars$gear==mtcars$carb,] 
+0

しかし、私はこれが欺瞞だと思う。 – nzcoops

+0

ありがとうございます。私は最初に答えを探しました。それは残念です。実際には私はすでにこのメソッドを使っていましたが、うまくいきませんでした。これは私が今発見したものは四捨五入によるものですので、iv [round(iv $ p.lower、3)== round(iv $ p .upper、3)、] –

+0

浮動小数点数を比較するには、標準メソッドは 'abs(x-y)

関連する問題