2016-11-21 6 views
-5

特定の精度のしきい値(つまり、50%が正しくありません)未満の被写体リストを含むデータフレームがあります:1。 私はすべてのデータですべての科目(正確かつ不正確)を含む別のデータフレームを持っています。重要なことに、この中央データフレームには、件名ごとに複数の行があります。2精度しきい値以下の被写体をフィルタリングするR

2の中央データフレームから不正確なサブジェクトを削除する必要があります。これはどのようにRで行うのですか?私はすでにサブセットを試しました:

filterdata<-subset(groupedmergedoutliers, subject==filtercorrectpercent$subject) 

'groupedmergedoutliers'は中央の対象データフレームです。 「filtercorrectpercent」は不正確な被験者データフレームであり、

+1

何を試しましたか?あなたはどこにいるのですか? '['または 'subset() 'を使ってデータフレームをサブセット化する方法を知っていますか? – Gregor

+0

私はサブセットを試しましたが、それ以上の値をフィルタリングしているようです。私は問題は、中央のデータフレームには各被写体ごとに複数の行が含まれていますが、不正確な被写体データフレームには被写体ごとに1行しか含まれていないという事実と関係していると思います。 –

+0

さて、どうやって試していますか?おそらく少し修正を加えることができます... – Gregor

答えて

0

==を使用しています(たとえば、df1$subjectの最初の行は、df2$subjectの最初の行と等しく、2番目の行は等しくなります)。 df1$subjectの各行はdf2$subjectの任意の行にある場合

c(1, 1, 2, 3) == c(1, 2, 3, 4) 
# [1] TRUE FALSE FALSE FALSE 

は代わりに、あなたがテストしたい考えてみましょう。これには%in%を使用できます。

c(1, 1, 2, 3) %in% c(1, 2, 3, 4) 
# [1] TRUE TRUE TRUE TRUE 

filterdata <- subset(
    groupedmergedoutliers, 
    subject %in% filtercorrectpercent$subject 
) 
関連する問題