我有一个包含两列感兴趣的数据集,其中一个是“响应”列(任务的参与者可以通过输入他们认为呈现的图像的内容来响应 - 因此该类是“字符”作为他们的回应)。第二列是“图像”列(包含显示的实际图像的名称)。
我想做的是看看有多少响应与图像的实际情况不匹配。由于参与者可以用多个词来描述和命名一个对象,我还想有几个选项来确定可接受的响应。到目前为止,我所做的是尝试对已呈现的 300 个图像中的每一个使用过滤器功能,包括对单个图像的呈现的所有响应以及对包含正确单词的该图像的所有响应。见下文:
Image1CorrectAnswers <- data %>% filter(data$Image == "Image1.jpg", data$Response == "bike")
然而,我想知道的是 1) 是否可以将过滤器功能用于不包含该特定图像的正确单词的响应? 2)以及我是否可以有多个不同的“可接受”词来“过滤”错误的正确答案(因为不同的参与者可以对同一图像做出不同的回答,但两者都是正确的)。目标是为 300 张图像中的每一张图像都设置一个最终变量,仅包含不正确的响应。
提前致谢。
答案 0 :(得分:0)
如果我理解正确,您需要确定数据集中哪些行的“响应”列与“图像”列匹配,对吗?
好吧,考虑到您的“图像”列是一个文件名(例如,以 .jpg 结尾),也许您可以拆分/删除文件扩展名。因此,您可以直接找出哪些行被正确标记(响应 = 图像)
说,
correct_responses <- data$Response %in% strsplit(data$Image, ".jpg")
这样您就可以通过以下方式访问正确和不正确的行:
correct_data <- data[correct_responses, ]
incorrect_data <- data[!correct_responses, ]