[英]Adding a column in data.table with looking up a value in another data.table (based on TWO similar columns)
我有一個關於基於另一個data.table中的信息向data.table中添加列的問題。
這是我的數據的樣子:
數據表1(足球比賽)
TeamcodeHome TeamcodeAway GoalsHome GoalsAway Season
1 2 5 0 2006
數據表2(橄欖球隊收到的卡片):
Teamcode Season Red Yellow
1 2005 1 15
2 2005 3 10
1 2006 4 16
2 2006 1 4
現在,如果要基於其他1列添加一列,我將在數據表中使用以下函數:
dt.1[dt.2, on="Teamcode", RedCards:=Red]
但是現在有兩個變量需要匹配。 Teamcode和Season。 這是如何運作的?
幫助頁面?data.table
說明了on
參數:
指示應將
i
哪些列與x
列以及要與之結合的二進制運算符的類型結合在一起。 指定后,它將覆蓋x
和i
上設置的鍵。 有多種方法指定參數:
- 作為字符向量,例如
X[Y, on=c("a", "b")]
。 假定這兩個列都出現在X
和Y
。- 作為命名字符向量,例如
X[Y, on=c(x="a", y="b")]
。 當兩個表之間要聯接的列名不同時,這很有用。
注意:如果列"a"
在兩個表之間是公用的,則X[Y, on=c("a", y="b")]
也可能。- 為了方便交互場景,也可以將
.()
語法用作X[Y, on=.(a, b)]
。
(它還建議使用小插圖二級索引和自動索引 。)
因此,這可能是兩列上的連接:
dt.1[dt.2, on = .(TeamcodeHome = Teamcode, Season), RedCardsHome := Red][]
TeamcodeHome TeamcodeAway GoalsHome GoalsAway Season RedCardsHome 1: 1 2 5 0 2006 4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.