Why doesn't `n_distinct` match with `max`? Which number is missing?

I think this is a question with an easy answer.

I have a vector of integers, ranging from 1 to 417. (As far as I know) every number in between is included at least once. However, I'm getting different numbers when I use n_distinct and when I use max which I think should be the same. I can't figure out what number is missing.

Why am I getting different answers?

Please excuse my poor excuse at a reprex, this is minimal as I can make the problem based on my understanding:

x <- 
c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 5L, 5L, 6L, 7L, 7L, 8L, 8L, 9L, 
10L, 10L, 10L, 10L, 10L, 10L, 11L, 11L, 11L, 12L, 13L, 16L, 16L, 
16L, 17L, 17L, 18L, 18L, 19L, 19L, 19L, 19L, 19L, 19L, 20L, 20L, 
21L, 21L, 21L, 22L, 22L, 22L, 23L, 23L, 24L, 24L, 25L, 25L, 25L, 
26L, 26L, 26L, 27L, 27L, 27L, 28L, 28L, 29L, 30L, 31L, 31L, 31L, 
32L, 32L, 33L, 33L, 33L, 34L, 35L, 36L, 36L, 37L, 38L, 38L, 39L, 
39L, 39L, 40L, 40L, 40L, 41L, 41L, 41L, 41L, 41L, 41L, 42L, 42L, 
43L, 44L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 
45L, 45L, 45L, 45L, 45L, 46L, 46L, 46L, 46L, 47L, 48L, 49L, 50L, 
50L, 51L, 51L, 51L, 52L, 53L, 54L, 55L, 56L, 56L, 57L, 57L, 57L, 
57L, 57L, 57L, 57L, 57L, 57L, 57L, 58L, 58L, 59L, 60L, 60L, 60L, 
60L, 60L, 60L, 60L, 60L, 61L, 61L, 61L, 61L, 61L, 61L, 61L, 61L, 
62L, 63L, 64L, 64L, 65L, 66L, 66L, 67L, 67L, 67L, 68L, 68L, 68L, 
68L, 69L, 70L, 70L, 71L, 71L, 71L, 71L, 72L, 72L, 73L, 73L, 74L, 
74L, 75L, 76L, 76L, 77L, 78L, 78L, 78L, 79L, 79L, 79L, 80L, 80L, 
80L, 81L, 82L, 83L, 84L, 84L, 85L, 85L, 85L, 85L, 86L, 86L, 86L, 
86L, 87L, 88L, 88L, 89L, 89L, 89L, 89L, 89L, 89L, 89L, 89L, 89L, 
89L, 89L, 89L, 89L, 89L, 89L, 89L, 90L, 90L, 90L, 90L, 90L, 90L, 
90L, 90L, 90L, 90L, 90L, 90L, 90L, 90L, 90L, 90L, 90L, 90L, 91L, 
91L, 91L, 91L, 91L, 91L, 91L, 91L, 91L, 91L, 91L, 91L, 91L, 91L, 
91L, 91L, 91L, 91L, 92L, 92L, 92L, 92L, 93L, 93L, 94L, 95L, 96L, 
96L, 97L, 97L, 97L, 97L, 97L, 97L, 97L, 98L, 98L, 98L, 98L, 99L, 
99L, 99L, 99L, 100L, 100L, 100L, 101L, 101L, 101L, 101L, 101L, 
101L, 102L, 102L, 103L, 103L, 103L, 104L, 104L, 105L, 105L, 105L, 
105L, 106L, 106L, 106L, 106L, 107L, 107L, 107L, 107L, 108L, 108L, 
108L, 108L, 108L, 108L, 108L, 108L, 108L, 109L, 109L, 109L, 109L, 
109L, 109L, 109L, 109L, 109L, 109L, 109L, 109L, 109L, 109L, 109L, 
110L, 110L, 111L, 112L, 113L, 114L, 115L, 115L, 116L, 117L, 118L, 
118L, 118L, 118L, 118L, 118L, 118L, 118L, 119L, 119L, 119L, 119L, 
120L, 120L, 120L, 120L, 120L, 120L, 120L, 120L, 120L, 120L, 120L, 
120L, 120L, 120L, 120L, 120L, 120L, 120L, 121L, 121L, 121L, 122L, 
122L, 123L, 124L, 125L, 125L, 126L, 127L, 127L, 128L, 129L, 130L, 
130L, 131L, 131L, 131L, 131L, 131L, 131L, 132L, 132L, 132L, 132L, 
133L, 133L, 133L, 133L, 134L, 135L, 135L, 135L, 135L, 135L, 135L, 
136L, 136L, 136L, 136L, 137L, 137L, 138L, 138L, 138L, 138L, 139L, 
139L, 139L, 140L, 140L, 140L, 141L, 141L, 141L, 142L, 142L, 142L, 
143L, 143L, 144L, 145L, 146L, 147L, 147L, 148L, 148L, 148L, 148L, 
149L, 150L, 150L, 150L, 150L, 150L, 150L, 150L, 150L, 151L, 151L, 
152L, 153L, 154L, 155L, 156L, 156L, 157L, 158L, 158L, 159L, 159L, 
159L, 160L, 161L, 161L, 161L, 161L, 161L, 161L, 161L, 162L, 162L, 
162L, 163L, 164L, 165L, 166L, 166L, 167L, 167L, 168L, 169L, 169L, 
169L, 170L, 170L, 170L, 170L, 171L, 172L, 172L, 174L, 174L, 174L, 
174L, 173L, 173L, 173L, 173L, 175L, 176L, 177L, 177L, 178L, 178L, 
178L, 178L, 179L, 179L, 179L, 179L, 180L, 180L, 180L, 180L, 181L, 
182L, 182L, 183L, 184L, 185L, 185L, 186L, 186L, 187L, 187L, 187L, 
187L, 187L, 187L, 188L, 188L, 188L, 189L, 190L, 191L, 192L, 192L, 
192L, 193L, 193L, 193L, 194L, 194L, 194L, 195L, 195L, 196L, 196L, 
197L, 197L, 197L, 197L, 197L, 197L, 198L, 198L, 198L, 199L, 199L, 
199L, 199L, 199L, 199L, 199L, 199L, 199L, 200L, 200L, 200L, 200L, 
201L, 201L, 201L, 201L, 202L, 202L, 203L, 204L, 204L, 205L, 206L, 
206L, 206L, 206L, 207L, 207L, 207L, 207L, 207L, 207L, 207L, 207L, 
208L, 209L, 209L, 209L, 209L, 209L, 209L, 210L, 210L, 210L, 210L, 
210L, 210L, 211L, 211L, 211L, 211L, 211L, 212L, 212L, 212L, 213L, 
213L, 213L, 214L, 215L, 216L, 217L, 217L, 217L, 218L, 218L, 218L, 
219L, 220L, 221L, 222L, 222L, 223L, 224L, 225L, 225L, 226L, 226L, 
227L, 228L, 228L, 228L, 228L, 229L, 230L, 230L, 231L, 231L, 231L, 
232L, 232L, 233L, 233L, 233L, 234L, 234L, 234L, 234L, 234L, 234L, 
234L, 235L, 235L, 235L, 235L, 235L, 235L, 235L, 235L, 235L, 235L, 
235L, 235L, 236L, 236L, 237L, 237L, 237L, 238L, 238L, 239L, 239L, 
239L, 239L, 239L, 239L, 240L, 241L, 241L, 242L, 242L, 242L, 242L, 
243L, 244L, 245L, 245L, 245L, 245L, 245L, 245L, 246L, 246L, 246L, 
246L, 246L, 247L, 247L, 247L, 247L, 247L, 247L, 247L, 247L, 247L, 
248L, 248L, 248L, 248L, 249L, 249L, 250L, 250L, 251L, 251L, 251L, 
252L, 252L, 252L, 253L, 253L, 253L, 253L, 253L, 253L, 253L, 253L, 
254L, 254L, 255L, 256L, 256L, 256L, 257L, 257L, 257L, 258L, 258L, 
258L, 258L, 258L, 258L, 258L, 258L, 258L, 259L, 260L, 261L, 261L, 
261L, 261L, 261L, 261L, 261L, 261L, 261L, 261L, 261L, 261L, 262L, 
262L, 262L, 262L, 262L, 262L, 263L, 263L, 263L, 263L, 264L, 264L, 
264L, 264L, 265L, 265L, 266L, 266L, 266L, 266L, 267L, 267L, 267L, 
268L, 268L, 268L, 269L, 270L, 270L, 270L, 270L, 271L, 271L, 271L, 
272L, 272L, 272L, 273L, 273L, 273L, 273L, 274L, 274L, 274L, 274L, 
275L, 275L, 275L, 276L, 276L, 276L, 277L, 277L, 277L, 278L, 278L, 
279L, 280L, 281L, 281L, 281L, 281L, 281L, 281L, 282L, 282L, 282L, 
282L, 282L, 282L, 283L, 283L, 283L, 283L, 283L, 283L, 284L, 284L, 
284L, 284L, 284L, 284L, 284L, 284L, 285L, 285L, 286L, 286L, 286L, 
286L, 286L, 286L, 286L, 286L, 287L, 287L, 287L, 287L, 288L, 288L, 
288L, 288L, 288L, 288L, 289L, 289L, 290L, 291L, 291L, 291L, 292L, 
292L, 292L, 293L, 293L, 294L, 294L, 294L, 294L, 294L, 294L, 295L, 
295L, 295L, 295L, 295L, 295L, 296L, 296L, 297L, 297L, 298L, 299L, 
299L, 299L, 299L, 299L, 300L, 300L, 300L, 301L, 301L, 301L, 302L, 
303L, 304L, 304L, 304L, 305L, 305L, 305L, 306L, 306L, 307L, 307L, 
308L, 308L, 309L, 310L, 310L, 310L, 310L, 311L, 312L, 313L, 313L, 
313L, 314L, 314L, 315L, 315L, 315L, 316L, 317L, 317L, 317L, 317L, 
317L, 317L, 318L, 318L, 318L, 318L, 318L, 318L, 318L, 318L, 318L, 
319L, 319L, 320L, 320L, 320L, 321L, 321L, 321L, 321L, 322L, 322L, 
322L, 322L, 322L, 322L, 323L, 324L, 325L, 325L, 326L, 326L, 327L, 
327L, 327L, 327L, 327L, 327L, 328L, 328L, 328L, 328L, 328L, 328L, 
329L, 329L, 329L, 329L, 330L, 330L, 330L, 331L, 331L, 332L, 332L, 
332L, 333L, 333L, 333L, 334L, 335L, 335L, 335L, 335L, 335L, 335L, 
335L, 335L, 335L, 335L, 335L, 335L, 336L, 336L, 337L, 337L, 337L, 
338L, 338L, 339L, 339L, 339L, 339L, 340L, 340L, 340L, 340L, 341L, 
341L, 341L, 341L, 342L, 342L, 342L, 342L, 342L, 343L, 343L, 343L, 
344L, 344L, 344L, 344L, 345L, 346L, 346L, 346L, 346L, 346L, 346L, 
347L, 347L, 347L, 347L, 348L, 348L, 348L, 349L, 350L, 350L, 350L, 
350L, 351L, 351L, 351L, 352L, 353L, 353L, 354L, 354L, 355L, 356L, 
356L, 356L, 357L, 357L, 358L, 358L, 359L, 359L, 359L, 360L, 360L, 
361L, 361L, 362L, 363L, 364L, 364L, 364L, 364L, 364L, 364L, 364L, 
364L, 365L, 365L, 366L, 367L, 367L, 367L, 368L, 368L, 368L, 368L, 
368L, 368L, 368L, 368L, 368L, 368L, 368L, 368L, 369L, 369L, 369L, 
369L, 370L, 370L, 370L, 370L, 371L, 372L, 372L, 373L, 373L, 373L, 
373L, 373L, 373L, 373L, 373L, 373L, 374L, 374L, 374L, 375L, 375L, 
376L, 376L, 377L, 377L, 378L, 378L, 378L, 378L, 378L, 378L, 379L, 
379L, 380L, 380L, 380L, 380L, 380L, 380L, 380L, 380L, 380L, 381L, 
381L, 381L, 381L, 381L, 381L, 381L, 381L, 381L, 382L, 383L, 383L, 
383L, 384L, 385L, 385L, 385L, 385L, 385L, 385L, 386L, 387L, 387L, 
387L, 388L, 388L, 389L, 389L, 390L, 391L, 392L, 392L, 393L, 393L, 
393L, 393L, 393L, 393L, 394L, 394L, 395L, 395L, 395L, 395L, 396L, 
396L, 396L, 396L, 397L, 398L, 398L, 399L, 399L, 400L, 400L, 401L, 
401L, 401L, 401L, 402L, 402L, 402L, 402L, 402L, 402L, 403L, 403L, 
403L, 403L, 403L, 403L, 404L, 404L, 404L, 404L, 404L, 404L, 405L, 
405L, 406L, 406L, 406L, 407L, 407L, 407L, 407L, 407L, 407L, 407L, 
407L, 407L, 408L, 408L, 409L, 409L, 410L, 410L, 410L, 410L, 410L, 
410L, 411L, 412L, 412L, 413L, 414L, 415L, 416L, 417L)

sum(!x %in% 1:417) # there are no missing integers
n_distinct(x) # 415
length(unique(x)) # 415; matches n_distinct
max(x) # 417
## 417 != 415

By switching sum(!x %in% 1:417) to:

which(!1:147 %in% x)

we see that 14 and 15 are missing.

Thank you everyone!

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.

If your question's been answered (even by you!), would you mind choosing a solution? It helps other people see which questions still need help, or find solutions if they have similar problems. Here’s how to do it: