在 R 中过滤低于准确度阈值的对象

Filtering subjects below accuracy threshold in R

我有一个数据框,其中包含低于某个准确度阈值(即 50% 不正确)的主题列表:1。 我有另一个数据框,其中包含所有主题(准确和不准确)及其所有数据。重要的是,在这个中央数据框中,每个主题都有多行:2.

我需要从 2 中的中央数据框中删除不准确的主题。我如何在 R 中执行此操作?我已经尝试过子集:

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

'groupedmergedoutliers'是中心主题数据框; 'filtercorrectpercent'是不准确的主题数据框;

您正在使用 ==,它测试成对相等性(例如,df1$subject 的第一行是否等于 df2$subject 的第一行,第二行是否相等, ETC。)。考虑

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

相反,您想测试 df1$subject 的每一行是否在 df2$subject 的任何一行中。我们可以为此使用 %in%

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

filterdata <- subset(
    groupedmergedoutliers,
    subject %in% filtercorrectpercent$subject
)