从网格坐标中找到正确的平均数字

  • 本文关键字:数字 网格 坐标 r
  • 更新时间 :
  • 英文 :


我正在尝试计算在记忆任务中得分正确的平均参与者数量。我有一个名为RecallType的专栏,它告诉我参与者是通过前向记忆回忆(称为forwards)还是通过向后记忆回忆(称为backwards)进行评估的。我还有一个名为ProbeState的列,它标识了内存任务的类型,其中有两个。在本专栏中,我有positionsdigits。这些都是我感兴趣的变量。

内存任务本身分为两列。Recall.CRESP列指定通过网格坐标选择的内存测试的正确答案。Recall.RESP显示参与者的反应。

这些列如下所示:

|Recall.CRESP                     | Recall.RESP                     |
|---------------------------------|---------------------------------|                 
|grid35grid51grid12grid43grid54   | grid35grid51grid12grid43grid54  |                
|grid11gird42gird22grid51grid32   | grid11gird15gird55grid42grid32  |

因此,例如在此表的第 1 行中,参与者获得了 5/5 的正确值,因为Recall.CRESP的网格坐标与Recall.RESP匹配。然而,在第 2 行中,参与者只得到了 2/5 的正确,因为只有第一个和最后一个网格坐标是相同的。坐标的顺序必须匹配才能正确。

理想情况下,我很想从任何回应中学习。如果您确实回复,请提出一些评论。

谢谢。

由于您是stackoverflow新手,请阅读此处有关如何制作可重现示例的答案,以便您的问题清楚:如何制作一个出色的 R 可重现示例?

据我了解,您希望拆分字符串,然后计算相等的情况。下面有一些代码可以帮助您入门:

a = "grid11gird42gird22grid51grid32"
b = "grid11gird15gird55grid42grid32"
a1 = strsplit(a, "grid|gird")
b1 = strsplit(b, "grid|gird")
table(unlist(a1) == unlist(b1))["TRUE"] - 1

您应该能够使用包dplyrgroup_bysummarize功能来取感兴趣的变量。

尝试使用regmatches

fun=function(x)do.call(rbind,regmatches(x,gregexpr(".*?\d.",x)))
with(dat,rowSums(fun(Recall.CRESP)==fun(Recall.RESP)))
[1] 5 2

数据:

structure(list(Recall.CRESP = c("grid35grid51grid12grid43grid54", 
"grid11grid42grid22grid51grid32"), Recall.RESP = c("grid35grid51grid12grid43grid54", 
"grid11grid15grid55grid42grid32")), .Names = c("Recall.CRESP", 
"Recall.RESP"), row.names = c(NA, -2L), class = "data.frame")

最新更新