Count the number of times a word appears?

10 Ansichten (letzte 30 Tage)
Beth Lewis
Beth Lewis am 17 Aug. 2021
Beantwortet: Simon Chan am 17 Aug. 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

Antworten (3)

Yazan
Yazan am 17 Aug. 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 am 17 Aug. 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
KSSV am 17 Aug. 2021
A = {'fishX' ;
'fishY' ;
'fishZ' ;
'fishX' ;
'fishX' } ;
B = [3 ; 3 ; 2 ; 2 ; 2]
idx = strcmp(A,'fishX') ;
iwant = sum(B(idx))

Kategorien

Mehr zu Numeric Types finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by