Unrecognized table row name

15 visualizaciones (últimos 30 días)
LeoAiE
LeoAiE el 6 de Sept. de 2021
Comentada: LeoAiE el 7 de Sept. de 2021
Hello everyone,
I have a table and I want to subscript using a column contain a string array. Basically, the column is repeated countries names and I used unique to get unique values. Then I wanted to get all the available information from the table about those countries. I understand I will lose some data from other columns, but this is not a concern at this time. I get an error message saying “unrecognized row name”
Any other methods can achieve the results? here is my code and my data
Data = readtable('Test.xlsx');
Data.country = string(Data.country);
Data(unique(Data.country),:)

Respuesta aceptada

Walter Roberson
Walter Roberson el 7 de Sept. de 2021
In order to index by a string or categorical in the first index of a table, the values have to have been set as the RowNames property.
filename = 'https://www.mathworks.com/matlabcentral/answers/uploaded_files/730924/Test.xlsx';
Data = readtable(filename);
Data.Properties.RowNames = string(Data.country);
Duplicate table row name: 'Andorra'.
Data(unique(Data.country),:)
You can see from this that every row name must be unique.
The indexing done with the first index of a table is not equivalent to a SELECT operator that would select all matches. Instead, the RowName that is set must be unique, must identify exactly one row in the table.
  2 comentarios
Walter Roberson
Walter Roberson el 7 de Sept. de 2021
If you want to get at the first match for each country:
filename = 'https://www.mathworks.com/matlabcentral/answers/uploaded_files/730924/Test.xlsx';
Data = readtable(filename);
Data.country = string(Data.country);
[~, ia] = unique(Data.country);
Data(ia,:)
ans = 19×4 table
lat lon country RandomCode _______ _________ _____________________ __________ 33.939 67.71 "Afghanistan" 41 41.153 20.168 "Albania" 53 -14.271 -170.13 "American Samoa" 59 42.546 1.6016 "Andorra" 1 -11.203 17.874 "Angola" 95 18.221 -63.069 "Anguilla" 54 -75.251 -0.071389 "Antarctica" 24 17.061 -61.796 "Antigua and Barbuda" 79 -38.416 -63.617 "Argentina" 83 40.069 45.038 "Armenia" 53 12.521 -69.968 "Aruba" 99 -25.274 133.78 "Australia" 58 47.516 14.55 "Austria" 64 40.143 47.577 "Azerbaijan" 83 23.685 90.356 "Bangladesh" 95 13.194 -59.543 "Barbados" 46
LeoAiE
LeoAiE el 7 de Sept. de 2021
@Walter Roberson Thank you so much I really appreciate your help. I always enjoy reading detailed explanations when you answer my questions and have a full understanding of where I missed up and how to fix it! You are awesome man. Keep up the great work.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by