我希望我能恰当地说明这一点 . 我有一个数据集,有两列我想在内存实验中进行比较 . Recall.CRESP
是一个列,用于指定通过网格坐标选择的内存测试的正确答案 . Recall.RESP
显示参与者的回应 .
列看起来像这样:
|Recall.CRESP | Recall.RESP |
|---------------------------------|---------------------------------|
|grid35grid51grid12grid43grid54 | grid35grid51grid12grid43grid54 |
|grid22grid53grid35grid21grid44 | grid23grid53grid35grid21grid43 |
|grid12grid14grid15grid41grid23 | grid12grid24grid31grid41grid25 |
|grid15grid41grid33grid24grid55 | grid15grid41grid33grid14grid55 |
我有以下代码行告诉我每行的列相互相同的百分比:
paste0((100*with(Data, mean(Recall.CRESP==Recall.RESP, na.rm = "TRUE"))), "%")
因此,例如,在我的数据集中,20%的时间列 Recall.CRESP
完全匹配 Recall.RESP
,表示主体在20%的时间内在内存测试中得分为5分(满分5分) .
但是,我希望能够以两种方式扩展这一点 . 第一个不是给我一个百分比的行何时相同,我想在序列中有部分匹配时的百分比 . 例如 grid11gird42gird22grid51grid32
和 grid11gird15gird55grid42grid32
共享2/5的匹配,第一个和最后一个网格坐标是相同的 . 我不知道如何在R中为2/5的部分序列匹配(或5中的任何其他结果)指定请求 . 另请注意,在此示例中, grid42
显示在两个序列中,但由于在 Recall.RESP
中记住了位置,因此无法正确调用 . 顺序在这些序列中很重要 .
另一点是,到目前为止,我已经在检查记忆项目的前向召回的准确性方面描述了实验 . 然而,我也有单独的数据,参与者以倒退的顺序回忆 . 例如,来自 Recall.CRESP
的 grid11gird22gird33grid44grid55
和来自 Recall.RESP
的 grid51grid44grid33grid22grid11
正确匹配4/5次 . 如何转换代码以检查反向序列并计算5个百分比?
任何想法将不胜感激 .
2 回答
这是我的解决方案:
我会将字符串分成矩阵列,这将使它们易于比较和操作:
当然,您可以将结果指定为原始数据的新列 .