我是R和這個列表的新手。我希望接下來的問題不是太基本或不瞭解。過去幾個小時我一直在檢查檔案,但無濟於事,所以在這裏發佈。部分問題是,當我提及我需要的功能時,我並不完全知道使用的正確術語,這會使搜索變得困難。話雖這麼說,這裏是我需要解決:將數據從一個數據框擴展到另一個數據框中的多行R
我有一個數據幀,看起來像下面這樣:一個項目的多個區域
Subject Item Region RT
13 102 1 R1 1245
14 102 4 R1 1677
15 102 7 R1 1730
25 103 1 R1 815
26 103 4 R1 828
27 103 7 R1 985
1489 102 1 R2 356
1490 102 4 R2 510
1491 102 7 R2 544
1501 103 1 R2 447
1502 103 4 R2 486
1503 103 7 R2 221
...
每個受試者的RT(反應時間)。每個主題都會看到多個項目。
我希望計算異常值,然後對它們進行歸一化(儘管我並不真的擔心這個線程中的解決方案)。作爲第一步,我使用了一些簡單的函數來計算的平均值和SD爲每個區域對每個受試者,橫跨物品摺疊(即,(平均所有的RT的該受試者具有在該區域中):
Mean = with(test, aggregate(RT, by = list(Subject,Region),mean, na.rm=TRUE))
SD = with(test, aggregate(RT, by = list(Subject,Region),sd, na.rm=TRUE))
然後我用cbind並做了一些重命名,以獲得數據都在一個數據幀:
Subject Region Mean SD
1 102 R1 1143.7778 202.25530
2 102 R2 431.8611 125.84393
9 103 R1 923.0833 179.51098
10 103 R2 344.1667 146.51192
...
的問題是,我現在需要關聯的所有與每個科目的正確區域的手段也就是說,我會的。喜歡生成看起來像這樣的輸出(請注意,所有主題102區域R1具有相同的平均值和標準差,但不同的RT等):
Subject Item Region RT Mean SD
13 102 1 R1 1245 1143.7778 202.25530
14 102 4 R1 1677 1143.7778 202.25530
15 102 7 R1 1730 1143.7778 202.25530
25 103 1 R1 815 923.0833 179.51098
26 103 4 R1 828 923.0833 179.51098
27 103 7 R1 985 923.0833 179.51098
1489 102 1 R2 356 431.8611 125.84393
1490 102 4 R2 510 431.8611 125.84393
1491 102 7 R2 544 431.8611 125.84393
1501 103 1 R2 447 344.1667 146.51192
1502 103 4 R2 486 344.1667 146.51192
1503 103 7 R2 221 344.1667 146.51192
似乎merge和cbind不會做擴展和匹配一個值到另一個值的工作。也許我需要使用融化或某個使用密鑰的功能?
我希望有人可以指向我的相關函數來閱讀,以便我可以自己嘗試,或只是幫助一些代碼。
感謝您的閱讀...
爲什麼你覺得'合併()'是使用的不是在這裏? – A5C1D2H2I1M1N2O1R2T1 2012-08-16 16:50:54
有沒有這樣的事情作爲「太基本的問題」,歡迎來到SO的R部分! ;-) – Rappster 2012-08-17 05:15:19
我懷疑merge()不相關可能是沒有根據的。也許我應該說,我不明白如何使merge()工作來完成我所需要的。我只是找到這個鏈接,這似乎是相關的:http://stackoverflow.com/questions/4227077/merging-two-different-data-frames-in-r – 2012-08-17 09:54:56