/ / plyrパッケージのcount関数からの結果で元のデータを置き換える方法は? - r、プライヤー

元のデータをplyrパッケージのcount関数の結果で置き換える方法は? - r、plyr

私の元のデータはこのようなものです。

  x1 x2 x3
1  0  0  0
2  1  1  1
3  1  1  1
4  1  3  1
5  2  2  2
6  3  3  3
7  3  3  3
8  3  2  2

plyrパッケージのcount関数を使うと、結果は次のようになります。

 x1 x2 x3 freq
1  0  0  0    1
2  1  1  1    2
3  1  3  1    1
4  2  2  2    1
5  3  2  2    1
6  3  3  3    2

元のデータテーブルをこのようなものに置き換えるにはどうすればよいですか。

  x1
1  1
2  2
3  2
4  3
5  4
6  6
7  6
8  5

回答:

回答№1は0

あなたが試みることができる

df1$x1 <- as.numeric(factor(rowSums(df1)))
df1$x1
#[1] 1 2 2 3 4 6 6 5

または count から plyr

library(plyr)
df2 <- count(df1)
freq1 <- df2$freq
df1$x1 <- join(unique(df1),transform(join(df2, df1),
new=rep(seq_along(freq1), freq1)))$new

df1$x1
#[1] 1 2 2 3 4 6 6 5

データ

df1 <- structure(list(x1 = c(0L, 1L, 1L, 1L, 2L, 3L, 3L, 3L),
x2 = c(0L, 1L, 1L, 3L, 2L, 3L, 3L, 2L), x3 = c(0L, 1L, 1L, 1L, 2L, 3L,
3L, 2L)), .Names = c("x1", "x2", "x3"), class = "data.frame",
row.names = c("1", "2", "3", "4", "5", "6", "7", "8"))