指定した時刻の範囲の​行を、元のテーブルか​ら抽出して、新しいテ​ーブルを作りたい

11 views (last 30 days)
DAIKI
DAIKI on 19 Mar 2023
Commented: DAIKI on 20 Mar 2023
一つのテーブルの中に、Var1、Var2、・・・、時刻データ(yyyy/mm/dd HH:mm:ss形式)数か月分あるのですが、
その中で、特定の時間帯(例えば06:00:00~12:00:00)のデータ行だけを、抜き取って新しいテーブルを作ることは出来るのでしょうか?

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 20 Mar 2023
oldT = timetable2table(readtimetable('outages.csv')); % サンプルデータ(時刻データは1列目にあるものとする)
tod = timeofday(oldT{:,1}); % 時刻データは1列目にあるものとする。これを抜き出し日付データを除く
newT = oldT(tod > '06:00:00' & tod < '12:00:00', :) % 特定の時間帯のデータ行だけを抜き取って新しいテーブルを作る
newT = 291×6 table
OutageTime Region Loss Customers RestorationTime Cause ________________ _____________ ______ __________ ________________ ___________________ 2002-03-16 06:18 {'MidWest' } 186.44 2.1275e+05 2002-03-18 23:23 {'severe storm' } 2004-09-27 11:09 {'MidWest' } 286.72 66104 2004-09-27 16:37 {'equipment fault'} 2003-09-27 07:32 {'SouthEast'} NaN 3.5517e+05 2003-10-04 07:02 {'severe storm' } 2003-11-12 06:12 {'West' } 254.09 9.2429e+05 2003-11-17 02:04 {'winter storm' } 2004-11-13 10:42 {'NorthEast'} NaN 1.4227e+05 2004-11-19 02:31 {'winter storm' } 2005-02-04 08:18 {'MidWest' } NaN NaN 2005-02-04 19:51 {'attack' } 2003-03-27 08:03 {'NorthEast'} 204.79 1.479e+05 2003-03-28 05:54 {'severe storm' } 2003-02-24 06:13 {'SouthEast'} 0 0 2003-02-24 21:18 {'attack' } 2005-06-29 08:37 {'West' } 601.13 32005 2005-06-29 08:57 {'equipment fault'} 2003-04-14 07:11 {'West' } 276.41 1.5647 2003-04-14 08:52 {'equipment fault'} 2005-06-29 11:51 {'MidWest' } 165.77 62167 2005-06-29 15:23 {'thunder storm' } 2002-07-01 08:18 {'MidWest' } 100.71 1.8116e+05 2002-07-01 11:33 {'severe storm' } 2004-07-02 09:16 {'MidWest' } 15128 2.0104e+05 2004-07-06 14:11 {'thunder storm' } 2002-12-10 10:45 {'MidWest' } 14493 3.0879e+06 2002-12-11 18:06 {'unknown' } 2002-05-18 11:04 {'MidWest' } 1389.1 1.3447e+05 2002-05-21 01:22 {'unknown' } 2002-08-17 09:05 {'NorthEast'} 21673 NaN 2002-08-19 21:45 {'unknown' }
  3 Comments
Atsushi Ueno
Atsushi Ueno on 20 Mar 2023
こちらは timetable 版です。
oldTT = readtimetable('outages.csv'); % サンプルデータ(時刻データは1列目にあるものとする)
tod = timeofday(oldTT.OutageTime); % 時刻データを抜き出し日付データを除く
newTT = oldTT(tod > '06:00:00' & tod < '12:00:00', :); % 特定の時間帯のデータ行だけを抜き取って新しいテーブルを作る
DAIKI
DAIKI on 20 Mar 2023
シンプルにできるんですね。自分の持っているデータでも意図したことができました。ご回答ありがとうございました!

Sign in to comment.

More Answers (0)

Categories

Find more on 日付と時刻 in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!