If the columns are all of the same type (e.g. all numbers), first convert to a matrix via as.matrix, then apply intersect. For example, if the data frame is called z:
zz <- as.matrix(z)
intersect(zz[1,], zz[2,])
If the columns have different types of variables, it may be necessary to first identify which columns are actually comparable, since you wouldn't want to compare a level variable to an integer. For example:
z <- data.frame(AA = c( 1, 1, 3, 4),
BB = c( 1, 5, 3, 1),
CC = c('1', 'a', 'b', 'b'),
DD = c( 1, 2, 3, 4)
z[z[,1] == z[,3],1]
While "1" will be returned here, the "1" can have a completely different meaning for a level variable and for a numeric variable, so we shouldn't want to compare numerical variables and level variables, at least not without careful oversight.
There may be a slick solution for the scenario where the data frame has several different types, but nothing is coming to mind...