ワイドからロングに形状を変更し、特定の変数で整理する方法を説明する何千もの回答があります。頭を抱えていないのは何なのかわかりません。もともと rater、obs、val1、val2 などで始まる行を、rater のIRRの下の列に整理する必要があります。
以下で作成できる私のデータに似たフォーマットを考えると:
r1 <- c('bob', 'sally', "george", "bob", "sally", "george")
r2 <- c(1,1,1,2,2,2)
r3 <- c("bad", "good", "good", "good", "good", "bad")
r4 <- c("bad", "bad", "good", "good", "good", "bad")
df=data.frame(r1,r2,r3,r4)
df = setNames(df, c('rater','obs', 'val1', 'val2'))
「評価者」に基づいてデータを列に整理する必要があります。特に 'obs' (観測番号) を保持できる場合、たとえば obs1_val1、obs1_val2 など、機能するものは何でも素晴らしいでしょう。
次の行に沿ったものについて:
dcast(df, obs ~ rater)
作成するもの:
obs bob george sally
1 1 bad good bad
2 2 good bad good
ただし、これは val2 の値を集計して削除します。
むしろ、次のようなものが必要です。
bob sally george
obs1_val1 bad good good
obs1_val2 bad bad good
obs2_val1 good good bad
obs2_val2 good good bad
同様の回答melt
を見ると、dcast
[実際には集計したくない - 列に積み重ねるだけ]の推奨事項が表示されます。
val1 と val2 の文字列は、私が試した要因と見なす必要があるため:
df$"val1" <- factor(df$val1, levels=c("bad","good"))
df$"val2" <- factor(df$val2, levels=c("bad","good"))
効果なし。取得:
Aggregation function missing: defaulting to length
obs bob george sally
1 1 2 2 2
2 2 2 2 2
これは役に立ちません。
?