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

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

Akzeptierte Antwort

Atsushi Ueno
Atsushi Ueno am 20 Mär. 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 Kommentare
Atsushi Ueno
Atsushi Ueno am 20 Mär. 2023
こちらは timetable 版です。
oldTT = readtimetable('outages.csv'); % サンプルデータ(時刻データは1列目にあるものとする)
tod = timeofday(oldTT.OutageTime); % 時刻データを抜き出し日付データを除く
newTT = oldTT(tod > '06:00:00' & tod < '12:00:00', :); % 特定の時間帯のデータ行だけを抜き取って新しいテーブルを作る
DAIKI
DAIKI am 20 Mär. 2023
シンプルにできるんですね。自分の持っているデータでも意図したことができました。ご回答ありがとうございました!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu table finden Sie in Help Center und File Exchange

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!