2011-09-16 39 views
3

我有一個研究,我提出了刺激對和個人記錄了一個答覆(數字1-1-1000)。我想在x軸上一個刺激的名稱,在y軸上的刺激2的名稱以及根據所呈現的相應對記錄的響應。現在我只有列中的數據:列1試驗編號,列2名稱的刺激1,列3名稱的刺激2,列4的響應。有什麼建議?我怎麼能用R來解決這個問題?如何用我自己的數據創建一個使用R的相似性矩陣?

+2

歡迎來到Stack Overflow!除非你提供一個可重複使用的例子,其他人可以在自己的機器上運行,否則任何人都很難提供幫助。例如,這將包含一小部分數據(使用dput())。請參閱[這裏](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)瞭解更多信息。 – joran

回答

0

如果明白這個問題正確這應該工作:

mydata <- data.frame(trial,stim1,stim2,response) 

mytable <- tapply(mydata$response,list(mydata$stim1,mydata$stim2),mean) 
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 

(順便說一句抱歉讓一個新的答案,我沒有足夠的聲譽尚未就此發表評論和編輯是太小,無法直接適用於。以前的帖子)。

+0

我不知道爲什麼這個時候沒有碰到,但它應該是現在。好的一段代碼在這裏保持。 – Rob

相關問題