如何构建RT的delta图

时间:2015-11-06 13:32:06

标签: r plot mean

我的数据框 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"))

但问题是我的变量不是二分法,所以它不起作用。

我还尝试使用另一个包含 ape 的包,其中也有delta图:

delta.plot(d, k = 20, plot = TRUE, which = 1:2)

我做错了什么?

1 个答案:

答案 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')

你有这个情节: enter image description here

您可能需要三重检查计算逻辑以满足您的需求。但是你需要确定你想要在那个情节上展示什么。