使用&操作[R]评估data.table列的成对组合>> [

问题描述 投票:1回答:1
假设我有两个大的data.tables,需要使用&操作将它们的列成对合并。组合由grid决定(将dt1 column1与dt2 column2等结合使用)

现在,我正在使用mclapply循环,当我运行完整的数据集时,脚本将花费数小时。我尝试将数据转换为矩阵并使用矢量化方法,但这花费了更长的时间。有没有更快和/或更优雅的方式来做到这一点?

mx1 <- replicate(10, sample(c(T,F), size = 1e6, replace = T)) # 1e6 rows x 10 columns mx1 <- as.data.table(mx1) colnames(mx1) <- LETTERS[1:10] mx2 <- replicate(10, sample(c(T,F), size = 1e6, replace = T)) # 1e6 rows x 10 columns mx2 <- as.data.table(mx2) colnames(mx2) <- letters[1:10] grid <- expand.grid(col1 = colnames(mx1), col2 = colnames(mx2)) # the combinations I want to evaluate out <- new_layer <- mapply(grid$col1, grid$col2, FUN = function(col1, col2) { # <--- mclapply loop mx1[[col1]] & mx2[[col2]] }, SIMPLIFY = F) setDT(out) # convert output into data table colnames(out) <- paste(grid$col1, grid$col2, sep = "_")

对于上下文,此数据来自基因表达矩阵,其中1行= 1个单元格

假设我有两个大的data.tables,需要使用&操作将它们的列成对组合。组合由网格决定(将dt1 column1与dt2 column2等结合在一起)右...

sql r data.table logical-operators pairwise
1个回答
0
投票
这可以在没有mapply的情况下直接完成:只需确保with参数为FALSE即:
© www.soinside.com 2019 - 2024. All rights reserved.