查找data.frame 1中但data.frame 2中没有的行

查找data.frame 1中但data.frame 2中没有的行,r,dataframe,diff,R,Dataframe,Diff,我有一个data.frame(data)和这个data.frame(Data2)的子集 set.seed(1) Data我认为您在Data.frame上使用的是Data.table结构。这应该起作用- library(data.table) Data <- data.table(Data) Data2 <- data.table(Data2) setkeyv(Data,colnames(Data)) setkeyv(Data2,colnames(Data2)) Data[!Dat

我有一个data.frame(data)和这个data.frame(Data2)的子集

set.seed(1)

Data我认为您在
Data.frame
上使用的是
Data.table
结构。这应该起作用-

library(data.table)
Data <- data.table(Data)
Data2 <- data.table(Data2)

setkeyv(Data,colnames(Data))
setkeyv(Data2,colnames(Data2))

Data[!Data2]
库(data.table)

Data我认为您在
Data.frame
上使用的是
Data.table
结构。这应该起作用-

library(data.table)
Data <- data.table(Data)
Data2 <- data.table(Data2)

setkeyv(Data,colnames(Data))
setkeyv(Data2,colnames(Data2))

Data[!Data2]
库(data.table)
DataData.table键是你最好的朋友

库(data.table)
DataData.table键是你最好的朋友

库(data.table)

数据这将解决您在这里的确切问题,但可能可以使用
plyr

library(plyr)
df <- as.data.frame(rbind(Data, Data2)) # rbind data sets
df <- count(df, vars = names(df))       # count frequency of rows
subset(df, freq < 2)                    # subset the data.frame when freq < 2
库(plyr)

df这将解决您在这里的确切问题,但可能可以使用
plyr

library(plyr)
df <- as.data.frame(rbind(Data, Data2)) # rbind data sets
df <- count(df, vars = names(df))       # count frequency of rows
subset(df, freq < 2)                    # subset the data.frame when freq < 2
库(plyr)

df
Data[!Data2]
样式语法与
Data.table
s但不与
Data.frame
s一起工作,但需要
数据[!Data2]
样式语法与
数据一起工作。table
s但不与
Data.frame
s一起工作,但需要
()
我将删除我的答案,因为它们本质上就是sameThank you!我可以看出它与我的例子是一致的,我会投票认为它已经解决了。不幸的是,这与我的实际例子不符。这两个数据帧称为SCICases4,其中包含11329行和SCICasesWoF(10914行),它们是我从SCICases4中提取的子集,并与rbind放在一起。我试图弄清楚剩下的是什么(我没有找到的行)。我有189个变量。如果我键入SCICases4[!SCICasesWoF],我只会得到SCICases4(显然是在运行了您建议的其他行之后)。>模式:“列表”>类:“数据.表格”“数据.框架”有什么想法吗?
setkeyv
部分正在对
data.table
s中的某种组合进行索引。如果已向
SCICasesWoF
添加了更多列,则需要将具有正确列名的向量传递到
setkeyv
,而不是传递
colnames()
。两个数据帧具有相同列名的相同列数。我随机选择了行,但后来又将它们放在一起,这可能是个问题吗?这并不是说我删除了一个完整的块,就像它出现在原来的帖子。我再试一次。也许我做错了什么。Thx的快速重播!你能发布你为
数据[!Data2]
部分运行的4-5行代码吗?我将删除我的答案,因为它们本质上与你相同!我可以看出它与我的例子是一致的,我会投票认为它已经解决了。不幸的是,这与我的实际例子不符。这两个数据帧称为SCICases4,其中包含11329行和SCICasesWoF(10914行),它们是我从SCICases4中提取的子集,并与rbind放在一起。我试图弄清楚剩下的是什么(我没有找到的行)。我有189个变量。如果我键入SCICases4[!SCICasesWoF],我只会得到SCICases4(显然是在运行了您建议的其他行之后)。>模式:“列表”>类:“数据.表格”“数据.框架”有什么想法吗?
setkeyv
部分正在对
data.table
s中的某种组合进行索引。如果已向
SCICasesWoF
添加了更多列,则需要将具有正确列名的向量传递到
setkeyv
,而不是传递
colnames()
。两个数据帧具有相同列名的相同列数。我随机选择了行,但后来又将它们放在一起,这可能是个问题吗?这并不是说我删除了一个完整的块,就像它出现在原来的帖子。我再试一次。也许我做错了什么。Thx的快速重播!您能否发布为
数据[!Data2]
部分运行的确切4-5行代码?