如何自动比较r中两个不同data.frames的两列中的值?

问题描述 投票:0回答:0

我正在尝试对两个数据框的所有列自动执行以下函数。

我有数据帧position_sc和position_hit。两者都有 18 列(每列代表一个主题(“PD..”)。行代表句子编号(句子理解测试有四个条件:sc、sf、lc、lf,句子总数 200)在position_sc 中的数字行中的行表示具有条件 sc 的句子编号(例如 3、7、19 --> 这些句子是在条件 sc 下呈现的) 在position_hit 中,行表示受试者命中的 200 个句子中的哪一个句子(例如 3、 22, 78 --> 受试者给出了这些句子的正确答案。现在我想得到受试者在条件 sc 下正确(命中)的句子。所以当他们有一个 sc 句子正确时,句子编号是相同的.

我想要position_hit$x和position_sc$x中相等值的数量。我能够分别对每一列(=主题)执行此操作,但我不知道如何在所有列上实现自动化(将position_sc $ PD02与position_hit $ PD02,position_sc $ PD03与position_hit $ PD03,position_sc $进行比较PD04 与position_hit$PD04,position_sc$PD05 与position_hit$PD03,同样。

效果很好:

test_single = length(intersect(position_sc$PD03, position_hit$PD03))

OUTPUT
[1] 40 

-->(40 个数字相等 --> 条件 sc 中的 40 个句子很受欢迎)

我尝试过类似的事情:

#Create a list containing both data.frames.
list_position_sc_hit = list(position_hit, position_sc)

#Try to automatize intersect() first:
test_all = sapply(list_positions_sc_hit, function(x) intersect(position_sc$x, position_hit$x))

But OUTPUT:
$hit
NULL

$sc
NULL

如果有人能帮助我,我会很高兴。

r dataframe intersect length
© www.soinside.com 2019 - 2024. All rights reserved.