gpt4 book ai didi

r - 向量化:我怎样才能在向量向量中只有所有元素集合的集合差异?

转载 作者:行者123 更新时间:2023-12-01 09:19:26 25 4
gpt4 key购买 nike

我有一个这样的 data.table:

dt=data.table(freq=c(4,3,2,1),elements=list(c('a','b','c'),
c('a','d'),
c('b','d'),
c('b','d','c','e')))
freq elements
1: 4 a,b,c
2: 3 a,d
3: 2 b,d
4: 1 b,d,c,e

我需要每行中的元素仅是该行中元素之间的集合差异以及该行之前集合中所有元素的联合。这样我会得到类似的东西:

   freq elements
1: 4 a,b,c
2: 3 d
3: 2 NA
4: 1 e

我可以使用 a for 将所有元素分组到 i-1 并仅获得集合差异,但我真的很想知道如何以矢量化方式执行此操作,如果可能的话。

谢谢你们!

最佳答案

假设您打算在 dt 的最后一行中有一个“e”,并且 freq 是唯一的(如果不是,则创建唯一索引,或使用行):

dt[, .(els = elements[[1]]), by = freq][
, .(freq = freq[1]), by = els][
, .(filtered = list(els)), by = freq][
dt, on = 'freq']
# freq filtered elements
#1: 4 a,b,c a,b,c
#2: 3 d a,d
#3: 2 NULL b,d
#4: 1 e b,d,e

关于r - 向量化:我怎样才能在向量向量中只有所有元素集合的集合差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36293025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com