Table Find Duplicate Rows (double, char, datetime)

117 次查看(过去 30 天)
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

回答(1 个)

the cyclist
the cyclist 2021-10-25
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 个评论
Dave
Dave 2021-10-26
编辑:Dave 2021-10-26
The table has double in some columns, char in some columns, datetime in one column
If I use unique it brings the same number of rows (and I check in excel that some rows are identical)
the cyclist
the cyclist 2021-10-26
编辑:the cyclist 2021-10-26
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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Tables 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by