R:以一列中的关键字为条件的快速子集大数据表

弗朗西斯(Francis)

我正在使用的数据表就像

require(data.table)
set.seed(2)
dt <- data.table(user=c(rep('a', 3), rep('b', 2), rep('c', 4)),
                 type=c(sample(LETTERS[1:4], 3), 
                        sample(LETTERS[1:4], 2),
                        sample(LETTERS[1:4], 4))
                 )

这是

   user type
1:    a    A
2:    a    C
3:    a    B
4:    b    A
5:    b    C
6:    c    D
7:    c    A
8:    c    B
9:    c    C     

我想找到的类型中的特定用户或者ABC只。在上面的示例中,用户c不合格,因为他拥有D自己的类型记录之一。所以期望的输出应该是

   user type
1:    a    A
2:    a    C
3:    a    B
4:    b    A
5:    b    C

我想到的第一种方法效率很低,它被分割dtsplit(dt, dt$user)并检查greplnrow是否相同,然后是索引和rbindlist由于我实际使用的数据表有10989251行,因此必须有一种有效的子集设置方法。

阿克伦

按“用户”分组if all,“类型”中的元素只有前三个LETTERS,我们得到Data.table(.SD的子集我在这里使用%chin%矢量进行比较,因为它是针对矢量进行%in%优化的较快版本character

dt[, if(all(type %chin% LETTERS[1:3])) .SD, by = user]
#    user type
#1:    a    A
#2:    a    C
#3:    a    B
#4:    b    A
#5:    b    C

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R-以数据帧列表为条件的快速子集大数据表

如何从C#中的数据表中使用group by关键字选择列和列总和

根据r中另一列中的多个关键字在一个列中添加值

转换为数据框时,如何将字典关键字保留为第一列?

如何根据 R 中其他列的条件过滤/子集数据表?

在大数据表中用.N子集多列

将多个工作表中的数据合并到列中关键字的一张表中

根据另一列提取R数据表中的唯一行

如何从R Shiny中的数据表中删除第一列(索引)

关键字分析:返回描述列包含一个或多个单词的行,这些单词位于另一个表的另一列中

从数据表中删除第一列

在文本中搜索关键字并为每个找到的关键字创建一个数据框列?

检查所有关键字是否至少匹配 SQL 中的一列

MySQL在同一列中搜索多个关键字

子集数据帧中的一列,将子集保留为数据帧

检查谷歌工作表中单元格数据中的唯一关键字

搜索关键字或更改每页条目时,通过 ajax 数据创建的数据表变空

r数据表子集的多种条件模式

数据表中带有条件的子集

如何在R中的数据框的特定列中查找和替换某些关键字?

数据表-在两个不同的上下文中使用'this'关键字

r通过包含关键字的列过滤数据帧

数据表,在数据集中添加另一列,但不在表中显示

对于一列中的关键字(字符串)和另一列中的值(浮点数),我想计算每个值范围内的ok关键字的数量

删除单个文件中与第一列对齐的关键字不匹配的所有行

访问数据表中另一列中的数据

如何按一列对数据表进行子集化,而对另一列进行最小值处理

带有关键字的子集数据框

R:基于一列的两个条件的子集数据帧