Table Find Duplicate Rows (double, char, datetime)

25 views (last 30 days)
Dave
Dave on 25 Oct 2021
Edited: the cyclist on 26 Oct 2021
Hello, in table A with 100,000 rows and 40 columns, is there a way to find duplicate rows?
The elements are of the type: double, char, datetime
Thanks

Answers (1)

the cyclist
the cyclist on 25 Oct 2021
You might need to share some more details about your table, but you should be able to use the unique function.
% Make some pretend data, which is 8 rows with 4 unique ones
tbl = array2table([magic(4); magic(4)]);
% Find the unique rows, along with indices for identifying the duplicates
[uniqueTableRows,indexToUniqueRows,indexBackFromUnique] = unique(tbl);
See the documentation for details on the indices that are reported.
  2 Comments
the cyclist
the cyclist on 26 Oct 2021
Different data types should not be a problem with this method:
% Make some pretend data of different types
n = [1; 2; 1; 1; 2; 1];
c = {'a';'b';'a';'b';'a';'b'};
t = datetime({'2014-05-26';'2014-08-03';'2014-05-26';'2014-08-03';'2014-05-26';'2014-08-03'},'InputFormat','yyyy-MM-dd');
% Put them in a table
tbl = table(n,c,t)
tbl = 6×3 table
n c t _ _____ ___________ 1 {'a'} 26-May-2014 2 {'b'} 03-Aug-2014 1 {'a'} 26-May-2014 1 {'b'} 03-Aug-2014 2 {'a'} 26-May-2014 1 {'b'} 03-Aug-2014
% Find the unique rows, along with indices for identifying the duplicates
[uniqueTableRows,indexToUniqueRows,indexBackFromUnique] = unique(tbl)
uniqueTableRows = 4×3 table
n c t _ _____ ___________ 1 {'a'} 26-May-2014 1 {'b'} 03-Aug-2014 2 {'a'} 26-May-2014 2 {'b'} 03-Aug-2014
indexToUniqueRows = 4×1
1 4 5 2
indexBackFromUnique = 6×1
1 4 1 2 3 2

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!