我是R的新手并尝试分析实验,但现在遇到困难。我有两个数据帧我想要结合起来。
完整的数据集位于:https://www.dropbox.com/sh/kn27vgfinjqvxmd/AABR6IAOJsU3FUr6J2XTPGxka?dl=0
emfix
包含来自眼动的数据,每行代表一次固定。 emfix$Fixx
和emfix$Fixy
是眼睛的位置。这是一个阅读实验,不同的emfix$Stimulus
包含不同数量的y轴上具有不同边框的线条。这些边框位于lines$minlimit
和lines$maxlimit
。
我现在想在emfix
的帮助下确定lines
中每次录制的行号。 R必须做的是获取emfix$Stimulus
和emfix$Fixy
的信息,并检查它们是否与lines$Stimulus
匹配,并且介于lines$minlimit
和lines$maxlimit
之间。然后,它必须返回与lines$LineNumber
的新列匹配的该行emfix$LineNumber
的值。
提前多多感谢!
祝福, 多米尼克
答案 0 :(得分:0)
我建议使用类似SQL连接的机制(虽然它可能恰好耗费资源)。 我的亲:
emfix$Fixy
点落在多个lines$minlimit
和lines$maxlimit
对之间,则不应该受到影响我的示例代码:
emfix <- data.frame(fixy = c(0.5,1.5,2.5,3.5,10), stimulus = c("a","a","a","b","b"))
lines <- data.frame(lines = c(1,2,3,4,5), maxlimit = c(1.1,2.1,3.1,4.1,5.1), minlimit = c(0,1,2,3,4), stimulus = c("a","a","a","b","b"))
mer <- merge(x = lines, y = emfix, by = "stimulus")
mer[which(mer$fixy <= mer$maxlimit & mer$fixy >= mer$minlimit),] # prints out complete lines OR
mer[which(mer$fixy <= mer$maxlimit & mer$fixy >= mer$minlimit), c("stimulus", "lines", "fixy")]