如何按R中的行执行%中的%?

如何按R中的行执行%中的%?,r,data.table,R,Data.table,data.table中是否有基本函数或函数可以帮助我执行此操作?我正在寻找一种处理大数据的有效方法 例如: matrix A: a b a c d b d a matrix B: a b d c a d %A中的B%应在%apply(A,1,list)中返回T,F,Fapply(B,1,list)%in%apply(A,1,list) 适用于矩阵和data.tables(和data.frames) 例子 Aapply(B,1,list)%中的%apply(A,1,list) 适用于矩阵和da

data.table中是否有基本函数或函数可以帮助我执行此操作?我正在寻找一种处理大数据的有效方法

例如:

matrix A:
a b
a c
d b
d a

matrix B:
a b
d c
a d
%A中的B%应在%apply(A,1,list)中返回
T,F,F
apply(B,1,list)%in%apply(A,1,list)

适用于矩阵和data.tables(和data.frames)

例子
A
apply(B,1,list)%中的%apply(A,1,list)

适用于矩阵和data.tables(和data.frames)

例子
A这里有一种可能性:使用
replicated
rbind
。使用@Robert的样本数据:

A <- cbind(c('a','a','d','d'), c('b','c','b','a'))
B <- cbind(c('a','d','a'), c('b','c','d'))
duplicated(rbind(B, unique(A)), fromLast = TRUE)[1:nrow(B)]
# [1]  TRUE FALSE FALSE

A这里有一种可能性:使用
replicated
rbind
。使用@Robert的样本数据:

A <- cbind(c('a','a','d','d'), c('b','c','b','a'))
B <- cbind(c('a','d','a'), c('b','c','d'))
duplicated(rbind(B, unique(A)), fromLast = TRUE)[1:nrow(B)]
# [1]  TRUE FALSE FALSE

A如果您确实在处理
数据表
(OP中不清楚),这是一种可能性:

A = data.table(c('a','a','d','d'),c('b','c','b','a'))
B = data.table(c('a','d','a'), c('b','c','d'))

setkey(A, V1, V2)

A[B, .N, by = .EACHI] # in data.table <= 1.9.2 use A[B, .N]
#   V1 V2 N
#1:  a  b 1
#2:  d  c 0
#3:  a  d 0

如果您确实在处理
数据表
(OP中不清楚),则有一种可能性:

A = data.table(c('a','a','d','d'),c('b','c','b','a'))
B = data.table(c('a','d','a'), c('b','c','d'))

setkey(A, V1, V2)

A[B, .N, by = .EACHI] # in data.table <= 1.9.2 use A[B, .N]
#   V1 V2 N
#1:  a  b 1
#2:  d  c 0
#3:  a  d 0


这看起来不像是meIt的
data.table
解决方案,它肯定能工作,只是不像OP要求的
data.table
解决方案。见@eddiesanswer@DavidArenburg,问题的原始版本——在任何SO的宽限期内编辑以隐藏编辑——将数据称为矩阵。罗伯特的回答完全可以接受。@AnandaMahto,你只是为了这个和我争论,不是吗:)这很有帮助。只是想知道这对于处理大型数据集是否足够有效。这看起来不像是meIt的
数据表
解决方案。当然,它不是OP要求的
数据表
解决方案。见@eddiesanswer@DavidArenburg,问题的原始版本——在任何SO的宽限期内编辑以隐藏编辑——将数据称为矩阵。罗伯特的回答完全可以接受。@AnandaMahto,你只是为了这个和我争论,不是吗:)这很有帮助。只是想知道这是否足够有效地处理大型数据集。
A[B,which=TRUE]
。。(虽然不简单)。@Arun nice-我以前从未使用过
,我不擅长data.table。因此,我什么时候可以省略[]?@3zhang中的“by”参数,您可以在
数据表中省略它;对于之后的版本,by WITH by功能也被显式设置为
A[B,它=TRUE]
。。(虽然不简单)。@Arun nice-我以前从未使用过
,我不擅长data.table。因此,我什么时候可以省略[]?@3zhang中的“by”参数,您可以在
数据表中省略它;对于之后的版本,by WITH by功能已明确表示感谢。对于小数据集,这是一种很好的方法。但就我所知,对于大的一个来说,唯一的函数本身是缓慢的。@3zhang,你的数据有多大<代码>矩阵
<代码>数据帧
<代码>数据。表
?有些类有自己的方法,这可能使它们比其他类更快。另外,再看一下我的答案,我想你并不真的需要
unique
步骤。谢谢。对于小数据集,这是一种很好的方法。但就我所知,对于大的一个来说,唯一的函数本身是缓慢的。@3zhang,你的数据有多大<代码>矩阵
<代码>数据帧
<代码>数据。表
?有些类有自己的方法,这可能使它们比其他类更快。另外,再看看我的答案,我想你并不真的需要
unique
步骤。