我有兩個data.tables(dat
和results
)共享列名。在附註中,results
保存了早先在* sub * dat
組中計算出的彙總統計。換句話說,nrow(results) != nrow(dat)
(但我不認爲這與問題有關) 現在我想通過向dat
J()中的列名衝突/重複?
dat
(即原始data.table)
dat[,list(colA,colB,NewColZ=results1[colX==colX & colY==colY,colZ])
,by=list(colX, colY)]
爲什麼:
我希望這不工作?因爲「colX」和「colY」是兩個data.tables(即dat和results)中的列名。我想說的是,results1[take_from_self(colX)==take_from_parent(colX)]
因此以下工作(注意,我只改名爲列)
dat[,list(colA,colB,NewCol=results1[cx==colX & cy==colY,colZ,])
,by=list(colX, colY)]
雖然我有一種感覺,這可以簡單方便地通過一個連接來完成。但是dat
有更多的列比results
其中是父'colX'和'colY'來自哪裏。另外,你有沒有閱讀常見問題?這是在那裏解決 – 2013-05-12 21:36:43
take_from_parent()只是指dat dat.table。此外,常見問題解答對j的範圍規則提出了一個問題,但在這裏我正在尋找i的範圍規則。 – varuman 2013-05-12 22:06:25
-1,我們可以有/一個數據?你期望代碼做什麼(以一種清晰的方式)?而這又是怎麼回事(再一次,以一種清晰簡潔的方式)?這是一個格式不太好的問題ATM。在對這個問題作出重大改變後,我很樂意投票贊成。 – Arun 2013-05-12 22:11:15