Effacer les filtres
Effacer les filtres

Count the number of times a word appears?

32 vues (au cours des 30 derniers jours)
Beth Lewis
Beth Lewis le 17 Août 2021
So I have a mixed text and numerical document that is located in a table. In column A it describes text values (fish species surveyed), where a specific text can be repeated multiple times along the rows.
In column B, it describes a numerical value of how many times that fish was surveyed in that particular instance. But the fish can be seen again, with different numeric values next to it.
For example:
A: B:
fishX 3
fishY 3
fishZ 2
fishX 2
fishX 2
So what I want to do is count the number of times Fish X, Y, Z has been surveyed overall, which I am finding difficult because they are two different mediums, across mulitple rows. It would require the code being able to go FishX=3+2+2.
This is all to count the most common Fish sighted in a survey.
Hope that makes sense

Réponses (3)

Yazan le 17 Août 2021
A = {'fishX', 'fishY', 'fishZ', 'fishX', 'fishX'}';
B = [3 3 2 2 2]';
T = table(A, B);
groupsummary(T, "A", 'sum')
ans = 3×3 table
A GroupCount sum_B _________ __________ _____ {'fishX'} 3 7 {'fishY'} 1 3 {'fishZ'} 1 2

Simon Chan
Simon Chan le 17 Août 2021
Use function readtable and groupsummary:
clear; clc;
A = readtable('demo.txt');
G = groupsummary(A,'A','sum');
A new column is generated which is the result.
G =
3×3 table
A GroupCount sum_B
_________ __________ _____
{'fishX'} 3 7
{'fishY'} 1 3
{'fishZ'} 1 2

KSSV le 17 Août 2021
A = {'fishX' ;
'fishY' ;
'fishZ' ;
'fishX' ;
'fishX' } ;
B = [3 ; 3 ; 2 ; 2 ; 2]
idx = strcmp(A,'fishX') ;
iwant = sum(B(idx))


En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by