应用R中的函数来比较列

应用R中的函数来比较列,r,apply,R,Apply,我有一个名为df的数据帧。我想检查每个文档的xcoordinate和ycoordinate是否相同 doc <- c("doc1", "doc2", "doc3") xcor <- c(3,4,5,3,4,5,3,4,4) ycor <- c(2,6,8,2,6,8,2,6,8) df <- data.frame(doc,xcor,ycor) df doc xcor ycor doc1 3 2 doc2 4 6 doc3

我有一个名为
df
的数据帧。我想检查每个文档的xcoordinateycoordinate是否相同

doc <- c("doc1", "doc2", "doc3") 
xcor <- c(3,4,5,3,4,5,3,4,4)   
ycor <- c(2,6,8,2,6,8,2,6,8) 
df <- data.frame(doc,xcor,ycor) 
df

doc xcor ycor  
doc1    3    2   
doc2    4    6  
doc3    5    8 
doc1    3    2  
doc2    4    6    
doc3    5    8  
doc1    3    2  
doc2    4    6  
doc3    4    8

我认为您不需要一个
apply
函数来实现此功能。我们可以统计消除重复行后的重复单据数:

table(df[!duplicated(df),]$doc) == 1

 doc1  doc2  doc3 
 TRUE  TRUE FALSE
甚至更短(@DavidArenburg):


好的,您仍然可以通过
lappy
实现它:

unlist(lapply(lapply(lapply(split(df, doc), unique), nrow), `==`, 1))
看起来有点凌乱,但效果不错

table(unique(df)$doc) == 1
unlist(lapply(lapply(lapply(split(df, doc), unique), nrow), `==`, 1))