簡體   English   中英

將data.table列的每組中的值與向量中的值進行匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM