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

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

Réponse acceptée

Atsushi Ueno
Atsushi Ueno le 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 commentaires
Atsushi Ueno
Atsushi Ueno le 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 le 20 Mar 2023
シンプルにできるんですね。自分の持っているデータでも意図したことができました。ご回答ありがとうございました!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur table dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!