reshape2
それを行うことができます。
データ:
df=structure(list(n = structure(1:4, .Label = c("A", "B", "C", "D"
), class = "factor"), b = structure(c(2L, 1L, 3L, 1L), .Label = c("Aaaa",
"Eeee", "Jjjj"), class = "factor"), c = structure(1:4, .Label = c("Aaaa",
"Bbbb", "Cccc", "Dddd"), class = "factor"), d = structure(c(NA,
1L, NA, NA), .Label = "Jjjj", class = "factor")), .Names = c("n",
"b", "c", "d"), class = "data.frame", row.names = c(NA, -4L))
library(reshape2)
dcast(melt(df,id.vars = "n"),n ~value,fun.aggregate = length)
います:
n Aaaa Bbbb Cccc Dddd Eeee Jjjj NA
1 A 1 0 0 0 1 0 1
2 B 1 1 0 0 0 1 0
3 C 0 0 1 0 0 1 1
4 D 1 0 0 1 0 0 1
をあなたは可能性があり、最後の列の選択を解除。
考え方は、melt()
のデータを長い形式にしてから、必要に応じてdcast()
を使ってそれをリキャストします。
fun.aggregate=length
が使用され、データフレームを埋めるために使用される値が発生回数に対応します。
あなたは 'reshape2'というタグを付けましたが、パッケージを試しましたか? –
@RichScrivenはい、私は現時点でそれを模索していますが、どの機能を使用するかは分かりません。私は整頓のようなスムースが必要だと思う。 – Schatt95