【发布时间】:2019-05-20 15:21:28
【问题描述】:
我正在尝试根据正确响应(C 列)计算参与者响应(R 列)的准确性。一些数据以二进制形式(01010 - 例如参与者错误、正确、错误、正确、错误)和字母序列(即字母字符串中字母的正确位置)给出。
查看数据示例:
dput(example)
structure(list(TRIAL = c("1", "2", "3", "4", "5", "6", "7", "8",
"9", "10", "11", "12", "13", "14", "15"), EQ_C = c("0101", "1010",
"1010", "00111", "01011", "01101", "100011", "010101", "001101",
"0110011", "1101001", "1100101", "11100001", "11001010", "11001010"
), EQ_R = c("0101", "0010", "1010", "00111", "01011", "01101",
"10101", "11010", "001101", "0100011", "1101001", "0100101",
"11110001", "11001010", "11001010"), MEM_C = c("ZLHK", "RZKX",
"DGWL", "BCJSP", "WRKTJ", "CHBXS", "HNDCWX", "SWVNDT", "WLDGPB",
"DSHRKBV", "HCXLZWB", "HDNBVZC", "BCRHKVDM", "RVTBWKFS", "NWHVZFLD"
), MEM_R = c("ZLHK", "RZKX", "DGWL", "BCJSP", "WRKLTJ", "CHBXS",
"HNDCWX", "SWVDTN", "WLDGPB", "DSHRKBV", "HCXLZWB", "HDNBVZC",
"BCRHKVDM", "RVTBWKFS", "NWHVZFLD"), EQ_SUM = c(NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), MEM_SUM = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)), row.names
= c(NA,
15L), class = "data.frame")
我为二进制数据 (EQ) 和字母 (MEM) 需要计算的“总和”/准确度分数添加了一个新列。
OSPAN["EQ_SUM"] <- NA
OSPAN["MEM_SUM"]<- NA
然后我尝试根据另一个 stackoverflow 线程(使用预测器和实际值)计算总和,但不知何故它无法识别我的变量。我怀疑我的数据格式有误,因为它一直告诉我找不到对象。
example$EQ_SUM <- round(100*rowMeans(EQ_C == EQ_R))
Error in is.data.frame(x) : object 'EQ_C' not found
我的问题是:如何将预测变量 (C) 和实际 (R) 值之间的准确性或一致性匹配/计算到总和列中?例如,在第 1 行中,EQ_SUM 为 1(或 100%),而在第 2 行中为 0.75 或 75%,因为参与者选择了错误的答案(0 而不是 1)。因此,给出了部分信用评分,这不是绝对匹配/一致的问题。
提前谢谢你。 (我希望我没有遗漏任何重要信息 - 这是我第一次发帖)。
【问题讨论】:
-
您好,请使用
dput提供可用的数据样本,而不是图像。谢谢 -
使用
dput(head(YOUR_DATA, 20))之类的方式支持包含您的数据样本的请求,以便我们能够以您拥有的相同格式获取您的数据样本。还想知道在第 7 行这样EQ_C的位数/字母数与EQ_R不同的情况下您想做什么。 -
有关衡量字符串之间差异的方法,请查看此内容,看看您在实施时是否有任何问题:github.com/markvanderloo/stringdist
-
@JonSpring 谢谢你的链接,我会试试看!我编辑了原始帖子并添加了我的数据样本。这也是我问自己的问题 - 想知道在参与者没有给出答案的情况下该怎么办,因此与 EQ_C 中的正确答案相比,EQ_R 中的答案更少。
-
@Jet 我提供了我的数据的摘录,我希望它可以正常工作/正确显示。 :)
标签: r statistics