2017-03-22 3 views
1

Rには3つのテーブルがあり、いずれも共通のキーを共有していません。私は列が繰り返されるので、3つの列すべての一意の組み合わせが存在する他のすべての表を結合する4番目の表を作成します。3つのテーブルを結合してすべての列を一意に結合する

あなたはDT1とDT2

の組み合わせを有するDT3の行ごとにそう

dt1 <- data.table(a = c(1,2,3,4,5)) 
dt2 <- data.table(b = c("a","b","c","d","e")) 
dt3 <- data.table(c = c("p1", "p2", "p3")) 

最初の数行の例は以下である:

dt4 <- data.table(a = c(rep(1, 3), rep(2, 3)), c(rep("a", 3), rep("b", 3)), rep(c("p1", "p2", "p3"), 2)) 

そこで得られたテーブル内の各行ユニークです。

答えて

1

我々はCJ

CJ(a = dt1$a, b = dt2$b, c = dt3$c) 

を使用することができますまたはプログラムの方法で

do.call(CJ, lapply(mget(paste0("dt", 1:3)), `[[`, 1)) 
+0

おかげでこれを行う、それは完全に働きました! 私は愚かな質問をすることはできますか?あなたはどのように知っていましたか?それとも私はSOに頼まずにこれを見つけたのでしょうか? – MidnightDataGeek

+1

@MidnightDataGeek申し訳ありませんが、私は電話をかけていました。それは練習からです。あなたが数ヶ月/年の間言語の作業を始めるなら、それを管理する多くの機能と方法を理解するでしょう。 – akrun

+1

@Midnightまた、 '?data.table'とその"参照 "セクションのすべてのリンクを読むと、利用可能な機能が分かります。 – Frank

関連する問題