1

(まだ)rは初めてで、データの複数のメルトをどのように実行するかについて非常に混乱しています。サブセットは次のとおりです。

df <- structure(list(Subject = c(101L, 101L, 101L, 102L, 102L, 102L
), Condition = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("apass", 
"vpas"), class = "factor"), FreqCode = structure(c(1L, 1L, 1L, 
2L, 2L, 2L), .Label = c("LessVerbal", "MoreVerbal"), class = "factor"), 
Item = c(1L, 4L, 7L, 1L, 4L, 7L), Len = c(80L, 68L, 85L, 
68L, 85L, 79L), R1_1.RT = c(237L, 203L, 207L, 336L, 487L, 
340L), R1_2.RT = c(177L, 225L, 162L, 634L, 590L, 347L), R1_3.RT = c(200L, 
226L, 212L, 707L, 653L, 379L), R1.RT = c(614L, 654L, 581L, 
1677L, 1730L, 1066L), R1_1 = structure(c(1L, 1L, 1L, 1L, 
1L, 1L), .Label = "The", class = "factor"), R1_2 = structure(c(3L, 
1L, 2L, 1L, 2L, 4L), .Label = c("antique", "course", "new", 
"road"), class = "factor"), R1_3 = structure(c(4L, 1L, 2L, 
1L, 2L, 3L), .Label = c("car", "materials", "surfaces", "technology"
), class = "factor"), R1 = structure(c(3L, 1L, 2L, 1L, 2L, 
4L), .Label = c("The antique car", "The course materials", 
"The new technology", "The road surfaces"), class = "factor")), .Names = c("Subject", 
"Condition", "FreqCode", "Item", "Len", "R1_1.RT", "R1_2.RT", 
"R1_3.RT", "R1.RT", "R1_1", "R1_2", "R1_3", "R1"), class = "data.frame", row.names =  
c(NA, 
-6L))

私の目標は、(部分的に)次のような出力を取得することです。

Region RT WordRegion Word
R1_1.RT 237 R1_1 the
...
R1_2.RT 177 R1_2 new
...

編集:「。RT」で終わる変数(例:R1_1.RT)は地域名であり、地域列に溶け込みます。数字で終わる変数(R1_1など)は、リージョン名とそれに関連する値に正確に対応しています。地域の列に関連して分析できるように、地域の名前と一緒にそれらを溶かしてほしい

コードの最初の部分では、すべての値をRegion列に溶かし、値をRTに変更します。これはうまくいくようです:

#long transform (with individual regions at end)
SmallMelt1 = melt(df, measure.vars = c("R1_1.RT", "R1_2.RT", "R1_3.RT", "R1.RT"), var = "Region")
#change newly created column name to "RT" (note:you have to change the number in [] to match your data)
colnames(SmallMelt1)[11 ] <- "RT"

しかし、変数の別のスパンを同時に溶かして、最初のスパンと垂直に並ぶようにする方法がわかりません。最初に溶けた後、このようなことをしたいのですが、うまくいきません。

#Second Melt for region names (doesn't work)
SmallMelt2 = melt(SmallMelt1, measure.vars = c("R1_1", "R1_2", "R1_3", "R1"), var = "WordRegion")

#Change name to Word
colnames(SmallMelt2)[9] <- "Word" #add col number for "value" here

説明が必要な場合はお知らせください。誰かが助けてくれることを願っています...事前に感謝します-DT

4

1 に答える 1

1

それで、リスト外の人に相談したところ、解決策が見つかりました。私の間違いは、最初のステップの出力に対して 2 番目のステップを実行しようとしたことです。元のデータに対して 2 つのステップを個別に実行してから連結することで、正しい結果が得られます。

SmallMelt1 = melt(df, measure.vars = c("R1_1.RT", "R1_2.RT", "R1_3.RT", "R1.RT"), var =   "Region")
SmallMelt2 = melt(df, measure.vars = c("R1_1", "R1_2", "R1_3", "R1"), var = "WordRegion")
SmallMelt3=cbind(SmallMelt1,SmallMelt2[,11])
于 2012-10-10T21:04:44.847 に答える