在 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
)
我有一个数据框,其中包含低于某个准确度阈值(即 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
)