我的数据框 d ,反应时间(RT)为4个不同的组:
NC NI RC RI
574.3 1238.9 1074.8 1258.2
508.7 492.2 537.8 1105.6
680.8 457.9 439.9 609
433.7 491.2 427.3 567.1
432 474.6 481.1 503.2
470.5 442.7 510.5 503.8
419.6 501.5 412.8 445.3
557.7 464.9 550.9 458.1
445.8 498.3 411.2 495.6
我计算了每组的平均值:
mean(d$NC)
mean(d$NI)
mean(d$RC)
mean(d$RI)
我尝试使用 deltaPlotR 包构建RT的delta图:
deltaPlot(d, type = "response", group, focal.name, thr = "norm",
purify = FALSE, purType = "IPP1", maxIter = 10, alpha =0.05,
extreme = "constraint", const.range = c(0.001, 0.999), nrAdd = 1,
save.output = FALSE,output = c("out", "default"))
但问题是我的变量不是二分法,所以它不起作用。
我还尝试使用另一个包含
delta.plot(d, k = 20, plot = TRUE, which = 1:2)
我做错了什么?
答案 0 :(得分:3)
所以基本上你需要的是按分位数分割的差异均值图。 deltaPlotR做的事情完全不同,所以你可能不需要它。
我仍然不确定我是否清楚地了解具体细节,但这是我的猜测:
data< -data.table(read.table(text = readClipboard(),head = T))
(我在剪贴板上阅读,你可能会在data.frame中找到你的数据)
首先,您将数据从宽格式转换为长格式
数据< -melt(数据)
然后,对于每个组,您可以根据分位数创建排名:
data [,quant:= as.numeric(cut(value,breaks = quantile(value,seq(0,1,.25)),include.lowest = TRUE)),by = variable]
然后计算每个分位数的均值之间的差异:
delta< -data [,list(delta_N = mean(ifelse(variable ==' NI',value,NA),na.rm = T)-mean(ifelse(variable ==&# 39; NC',值,NA),na.rm = T),delta_R =平均值(ifelse(变量==' RI',值,NA),na.rm = T)-mean (ifelse(变量==' RC',值,NA),na.rm = T)),keyby = quant]
然后你绘制它们:
绘图(delta [,range(quant)],delta [,range(delta_N,delta_R)],type =" n")
行(x = delta $ quant,y = delta $ delta_R,ty =' b',col =' red') 行(x = delta $ quant,y = delta $ delta_N,ty =' b',col =' blue')
您可能需要三重检查计算逻辑以满足您的需求。但是你需要确定你想要在那个情节上展示什么。