Skip to content
Prev 378837 / 398502 Next

Common elements

Hello,

If I understand correctly, here are two different ways of doing what you 
want.

1) base R.

i <- duplicated(df1[[2]])
j <- duplicated(df1[[2]], fromLast = TRUE)
res <- df1[i | j, ]

res[order(res[[2]]), ]    # not strictly needed


2) with package dplyr. If you do not want to order by Mother,
delete the last %>%, at the end of the line and the next line, 
arrange(Mother).

library(dplyr)

df1 %>% group_by(Mother) %>% filter(n() > 1) %>%
   arrange(Mother)


#------------ dataset ------------------
# Note that your data seems to be a matrix,
# read.table creates data.frames

df1 <- read.table(text = "
       Animal Mother
[1,]   1143    430
[2,]   1144    134
[3,]   1146      3
[4,]   1147    151
[5,]   1150    230
[6,]   1156    290
[7,]   1157    227
[8,]   1159    757
[9,]   1160      3
[10,]   1161    236
[11,]   1162    231
[12,]   1164    132
[13,]   1165    420
[14,]   1168    290
[15,]   1169    229
[16,]   1172    425
[17,]   1173    134
[18,]   1174    234
[19,]   1175    233
[20,]   1178    239
[21,]   1179    757
[22,]   1180    236
[23,]   1185    420
[24,]   1186    389
[25,]   1190    425
[26,]   1192    235
", header = TRUE)
row.names(df1) <- NULL



Hope this helps,

Rui Barradas


?s 17:51 de 08/03/2019, Silvano Cesar da Costa escreveu: