[英]Match values in each group of a data.table column to values in a vector
我最近開始使用data.table包來標識表列中符合某些條件的值。 盡管和我設法完成了大部分工作,但現在我陷入了這個問題:
我有一個數據表table1,其中第一列(標簽)是組ID,第二列o.cell是整數。 鑰匙在“標簽”上
我還有另一個數據表table2,其中包含一列:“單元格”。
現在,我試圖為table1中的每個組查找table2的“單元”列中的“ o.cell”列中的值。 table1有一些400K行,分為800多個不等大小的組。 table2具有約130萬行唯一單元格編號。 可以在多個組中找到“ o.cell”表1列中的單元號。
這似乎是一個簡單的任務,但是我找不到正確的方法。 根據我構造呼叫的方式,它可能會給我帶來與預期不同的結果,或者它永遠無法完成,並且我必須結束R任務,因為它被凍結了(我的計算機具有24 GB RAM)。
這是我嘗試的呼叫“變體”之一的示例:
overlap <- table1[, list(over.cell =
o.cell[!is.na(o.cell) & o.cell %in% table2$cell]),
by = labels]
我很確定這是使用數據表完成此任務的錯誤方法,最重要的是我無法獲得所需的結果。
我將不勝感激任何幫助。 謝謝。
聽起來這是您的設置:
dt1 = data.table(labels = c('a','b'), o.cell = 1:10)
dt2 = data.table(cell = 4:7)
您只想做一個簡單的合並:
setkey(dt1, o.cell)
dt1[dt2]
# o.cell labels
#1: 4 b
#2: 5 a
#3: 6 b
#4: 7 a
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.