我有一项研究,其中我提出了一对刺激,个人记录了一个反应(数字1-1-1000)。我想要x轴上的刺激名称,y轴上的刺激2的名称以及根据所呈现的相应对记录的响应。现在我只在列中有我的数据:第1列试验编号,第2列刺激1的名称,第3列刺激2的名称,第4列是响应。有什么建议?我怎么能用R?
来解决这个问题答案 0 :(得分:2)
darckeen的帖子只需要list()
而不是c()
。然后我认为它应该工作。这是一个完整的例子:
set.seed(12345)
data = expand.grid(trial=1:10, stim1=1:5, stim2=1:3)
data = data.frame(data, response=rnorm(nrow(data)))
with(data, tapply(response, list(stim1,stim2), mean))
输出:
1 2 3
1 -0.13294415 0.27326245 -0.11120045
2 0.28597776 0.02338804 0.21280916
3 0.08338741 0.44086561 -0.08682628
4 0.72432003 0.84250712 0.28383378
5 -0.06290978 -0.02588252 -0.36364019
(顺便说一句,很抱歉给出一个新答案。我没有足够的声誉来评论,而且编辑太小而无法直接应用到上一篇文章。)
答案 1 :(得分:0)
如果正确理解问题,这应该有效:
mydata <- data.frame(trial,stim1,stim2,response)
mytable <- tapply(mydata$response,list(mydata$stim1,mydata$stim2),mean)