3

アイデアは、頻度表を geom_density が処理できるものに変換することです ( ggplot2)。

頻度表から始める

> dat <- data.frame(x = c("a", "a", "b", "b", "b"), y = c("c", "c", "d", "d", "d"))
> dat
  x y
1 a c
2 a c
3 b d
4 b d
5 b d

dcast を使用して頻度表を作成する

> library(reshape2)
> dat2 <- dcast(dat, x + y ~ ., fun.aggregate = length)
> dat2
  x y count
1 a c     2
2 b d     3

どうすればこれを元に戻すことができますか? melt答えではないようです:

> colnames(dat2) <- c("x", "y", "count")
> melt(dat2, measure.vars = "count")
  x y variable value
1 a c    count     2
2 b d    count     3
4

1 に答える 1

0

dcast任意の集計関数を使用できるため、集計を元に戻す方法を知らずに (集計) を元に戻すことはできません。

の場合length、明らかな逆はrepです。sumorのような集計のmean場合、明らかな逆はありません (元のデータを属性として保存していないことを前提としています)。

反転するいくつかのオプションlength

あなたが使用することができますddply

library(plyr)
ddply(dat2,.(x), summarize, y = rep(y,count))

またはもっと簡単に

as.data.frame(lapply(dat2[c('x','y')], rep, dat2$count))
于 2013-08-02T06:36:52.467 に答える