現在、私はdata.tableを使用してグループ内で可能なすべての置換を取得することに関連する問題に苦しんでいます。data.tableのグループ内のすべての可能なペアを抽出します
私の問題を説明するために、例を示しましょう。
x <- c(1, 1, 1, 2, 2)
y <- c('red', 'blue', 'black', 'orange', 'red')
dt1 <- as.data.table(cbind(x,y))
dt1
x y
1: 1 red
2: 1 blue
3: 1 black
4: 2 orange
5: 2 red
ここで、グループ(x)内のすべての可能な色のペア(y)を見たいと思います。だから私の理想的な結果は、私はそれをグーグルでなかったと私は私が探しています何である機能、順列を、見つけたが、私はそれは難しい絞る見つけ、このための解決策を見つけるために....
x y1 y2
1 black blue
1 black red
1 blue black
1 blue red
1 red black
1 red blue
2 orange red
2 red orange
だろうそれをdata.tableフレームワークに変換します。
dt1[, .(j = lapply(.SD, permutations, n=.N, r=2, v=y, repeats.allowed=F)), by=x]
...このための任意の提案を
y <- c('red', 'blue', 'black')
permutations(n=3, r=2, v=y, repeats.allowed=F)
[,1] [,2]
[1,] "black" "blue"
[2,] "black" "red"
[3,] "blue" "black"
[4,] "blue" "red"
[5,] "red" "black"
[6,] "red" "blue"
は、だから私は、次の操作を実行しようとしたが、明らかにそれはエラーを持っていますか? 本当に感謝します。
恐らく 'dt1 [、CJ(y、y)、by = x] [V1!= V2]' – Henrik