Read CSV with yyyyMMddhhmmss and group months

조회 수: 1 (최근 30일)
Lauren
Lauren 2022년 1월 9일
댓글: Lauren 2022년 1월 12일
Hello! Matlab newbie, so I apologize if this is a simple question.
I've got a 5000 by 1 CSV file filled with numbers in the yyyyMMddhhmmss format. I'm simply trying to group each line by month.
  댓글 수: 4
Stephen23
Stephen23 2022년 1월 10일
편집: Stephen23 2022년 1월 10일
@Lauren: what version of MATLAB are you using?
" I'm simply trying to group each line by month."
Which of these to you want?:
  1. group by month only (so you will get twelve groups, i.e. 2021-03 is in the same group as 2019-03)
  2. group by month of every year (i.e. 2021-03 is in a different group from 2019-03).
What do you want to occur with missing data? For example, such as here:
Note that your description does not match the uploaded file:
yyyyMMddhhmmss % your description.
202009090029 % actually in the file (no seconds).
Lauren
Lauren 2022년 1월 11일
Great points. I want your option 1: to group by month so there are 12 groups.
Yes, you are correct. There are not seconds. It shoulud be yyyyMMddhhmm. Mea Culpa!

댓글을 달려면 로그인하십시오.

채택된 답변

Stephen23
Stephen23 2022년 1월 11일
Here is one way to group by month only, ignoring empty lines of the CSV file:
str = fileread('sample.csv');
tkn = regexp(str,'^(\d{4})(\d\d)','tokens','lineanchors');
tkn = vertcat(tkn{:})
tkn = 5091×2 cell array
{'2020'} {'09'} {'2020'} {'09'} {'2019'} {'08'} {'2019'} {'03'} {'2019'} {'02'} {'2020'} {'06'} {'2019'} {'03'} {'2020'} {'06'} {'2020'} {'06'} {'2020'} {'06'} {'2020'} {'06'} {'2020'} {'06'} {'2020'} {'09'} {'2019'} {'09'} {'2020'} {'06'} {'2019'} {'09'} {'2019'} {'07'} {'2020'} {'06'} {'2019'} {'08'} {'2019'} {'02'} {'2019'} {'03'} {'2019'} {'08'} {'2018'} {'07'} {'2018'} {'08'} {'2018'} {'09'} {'2020'} {'10'} {'2019'} {'07'} {'2018'} {'09'} {'2020'} {'08'} {'2020'} {'09'}
[~,~,grp] = unique(tkn(:,2),'stable')
grp = 5091×1
1 1 2 3 4 5 3 5 5 5

추가 답변 (1개)

KSSV
KSSV 2022년 1월 9일
Read about datevec. This will split the date into year, month, days etc.....from this you can apply the function unique and get them grouped.

카테고리

Help CenterFile Exchange에서 Dates and Time에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by