このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
mergevars
table 変数または timetable 変数を複数列変数にまとめる
説明
T2 = mergevars(
は、T1
,vars
)vars
で指定された複数の table 変数をまとめて T2
内に複数列の変数を 1 つ作成します。T1
のその他すべての変数は変更されません。変数は名前や位置で指定するか、論理インデックスを使用して指定することができます。
たとえば、T1
に var3
と var5
という名前の変数がある場合、T2 = mergevars(T1,["var3","var5"])
を使用して、2 列をもつ 1 つの変数にそれらをまとめることができます。
既定では、T2
内にあるマージ後の変数の名前は Var
の形式になります。ここで N
はマージ後の変数の位置です。たとえば、マージ後の変数が N
T2
内の 3 番目の変数である場合、その名前は Var3
です。
複数列変数を分割するには、関数 splitvars
を使用します。
T2 = mergevars(
は、前述の構文の入力引数に加え、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、マージされる変数の名前を指定するには、T1
,vars
,Name,Value
)NewVariableName
を、指定する名前に設定します。
例
変数のマージ
ワークスペース変数から table を作成します。
A = [1:3]'; B = [5 11 12]'; C = [3.14 2.72 1.37]'; D = ["a";"b";"c"]; T1 = table(A,B,C,D)
T1=3×4 table
A B C D
_ __ ____ ___
1 5 3.14 "a"
2 11 2.72 "b"
3 12 1.37 "c"
2 番目と 3 番目の変数をマージします。新しい変数には 2 列があります。
T2 = mergevars(T1,[2 3])
T2=3×3 table
A Var2 D
_ __________ ___
1 5 3.14 "a"
2 11 2.72 "b"
3 12 1.37 "c"
マージした変数の新しい名前
patients.mat
ファイルのデータ配列を使用して table を作成します。
load patients
T1 = table(Age,Height,Weight,Systolic,Diastolic)
T1=100×5 table
Age Height Weight Systolic Diastolic
___ ______ ______ ________ _________
38 71 176 124 93
43 69 163 109 77
38 64 131 125 83
40 67 133 117 75
49 64 119 122 80
46 68 142 121 70
33 64 142 130 88
40 68 180 115 82
28 68 183 115 78
31 66 132 118 86
45 68 128 114 77
42 66 137 115 68
25 71 174 127 74
39 72 202 130 95
36 65 129 114 79
48 71 181 130 92
⋮
変数 Systolic
および Diastolic
を、2 列をもつ 1 つの変数にマージします。それに BloodPressure
という名前を付けます。
T2 = mergevars(T1,["Systolic","Diastolic"], ... "NewVariableName","BloodPressure")
T2=100×4 table
Age Height Weight BloodPressure
___ ______ ______ _____________
38 71 176 124 93
43 69 163 109 77
38 64 131 125 83
40 67 133 117 75
49 64 119 122 80
46 68 142 121 70
33 64 142 130 88
40 68 180 115 82
28 68 183 115 78
31 66 132 118 86
45 68 128 114 77
42 66 137 115 68
25 71 174 127 74
39 72 202 130 95
36 65 129 114 79
48 71 181 130 92
⋮
table にマージした変数
スプレッドシートから table を読み取ります。スプレッドシートから読み取る列のデータ型を指定するには、インポート オプション オブジェクトを使用します。出力 table の最初の 8 行を表示します。
opts = detectImportOptions("outages.csv"); opts.VariableTypes = ["categorical","datetime","double", ... "double","datetime","categorical"]; T1 = readtable("outages.csv",opts)
T1=1468×6 table
Region OutageTime Loss Customers RestorationTime Cause
_________ ____________________ ______ __________ ____________________ _______________
SouthWest 01-Feb-2002 12:18:00 458.98 1.8202e+06 07-Feb-2002 16:50:00 winter storm
SouthEast 23-Jan-2003 00:49:00 530.14 2.1204e+05 NaT winter storm
SouthEast 07-Feb-2003 21:15:00 289.4 1.4294e+05 17-Feb-2003 08:14:00 winter storm
West 06-Apr-2004 05:44:00 434.81 3.4037e+05 06-Apr-2004 06:10:00 equipment fault
MidWest 16-Mar-2002 06:18:00 186.44 2.1275e+05 18-Mar-2002 23:23:00 severe storm
West 18-Jun-2003 02:49:00 0 0 18-Jun-2003 10:54:00 attack
West 20-Jun-2004 14:39:00 231.29 NaN 20-Jun-2004 19:16:00 equipment fault
West 06-Jun-2002 19:28:00 311.86 NaN 07-Jun-2002 00:51:00 equipment fault
NorthEast 16-Jul-2003 16:23:00 239.93 49434 17-Jul-2003 01:12:00 fire
MidWest 27-Sep-2004 11:09:00 286.72 66104 27-Sep-2004 16:37:00 equipment fault
SouthEast 05-Sep-2004 17:48:00 73.387 36073 05-Sep-2004 20:46:00 equipment fault
West 21-May-2004 21:45:00 159.99 NaN 22-May-2004 04:23:00 equipment fault
SouthEast 01-Sep-2002 18:22:00 95.917 36759 01-Sep-2002 19:12:00 severe storm
SouthEast 27-Sep-2003 07:32:00 NaN 3.5517e+05 04-Oct-2003 07:02:00 severe storm
West 12-Nov-2003 06:12:00 254.09 9.2429e+05 17-Nov-2003 02:04:00 winter storm
NorthEast 18-Sep-2004 05:54:00 0 0 NaT equipment fault
⋮
Cause
、Loss
および RestorationTime
をマージします。これらの変数は型が異なるため、出力 table 内で入れ子にされた table にこれらをマージします。
T2 = mergevars(T1,["Cause","Loss","RestorationTime"],... "NewVariableName","LossData","MergeAsTable",true)
T2=1468×4 table
Region OutageTime Customers LossData
_________ ____________________ __________ _________________________________________________
Cause Loss RestorationTime
_______________ ______ ____________________
SouthWest 01-Feb-2002 12:18:00 1.8202e+06 winter storm 458.98 07-Feb-2002 16:50:00
SouthEast 23-Jan-2003 00:49:00 2.1204e+05 winter storm 530.14 NaT
SouthEast 07-Feb-2003 21:15:00 1.4294e+05 winter storm 289.4 17-Feb-2003 08:14:00
West 06-Apr-2004 05:44:00 3.4037e+05 equipment fault 434.81 06-Apr-2004 06:10:00
MidWest 16-Mar-2002 06:18:00 2.1275e+05 severe storm 186.44 18-Mar-2002 23:23:00
West 18-Jun-2003 02:49:00 0 attack 0 18-Jun-2003 10:54:00
West 20-Jun-2004 14:39:00 NaN equipment fault 231.29 20-Jun-2004 19:16:00
West 06-Jun-2002 19:28:00 NaN equipment fault 311.86 07-Jun-2002 00:51:00
NorthEast 16-Jul-2003 16:23:00 49434 fire 239.93 17-Jul-2003 01:12:00
MidWest 27-Sep-2004 11:09:00 66104 equipment fault 286.72 27-Sep-2004 16:37:00
SouthEast 05-Sep-2004 17:48:00 36073 equipment fault 73.387 05-Sep-2004 20:46:00
West 21-May-2004 21:45:00 NaN equipment fault 159.99 22-May-2004 04:23:00
SouthEast 01-Sep-2002 18:22:00 36759 severe storm 95.917 01-Sep-2002 19:12:00
SouthEast 27-Sep-2003 07:32:00 3.5517e+05 severe storm NaN 04-Oct-2003 07:02:00
West 12-Nov-2003 06:12:00 9.2429e+05 winter storm 254.09 17-Nov-2003 02:04:00
NorthEast 18-Sep-2004 05:54:00 0 equipment fault 0 NaT
⋮
入力引数
T1
— 入力テーブル
table | timetable
入力 table。table または timetable として指定します。
vars
— 入力 table の変数
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列 | pattern
スカラー | 数値配列 | logical 配列
入力 table の変数。string 配列、文字ベクトル、文字ベクトルの cell 配列、pattern
スカラー、数値配列、または logical 配列として指定します。
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
例: T2 = mergevars(T1,vars,NewVariableName="MergedResults")
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: T2 = mergevars(T1,vars,"MergeAsTable",true)
NewVariableName
— マージ後の変数の名前
文字ベクトル | string スカラー
マージ後の変数の名前。文字ベクトルまたは string スカラーとして指定します。
MergeAsTable
— 変数を table にマージするフラグ
false
または 0
(既定値) | true
または 1
変数を table にマージするフラグ。数値または logical 1
(true
) または 0
(false
) として指定します。指定した変数を出力 table の変数に入れ子にされた table にマージするには、このフラグを true
または 1
に設定します。この引数を使用して、配列に連結できない変数をまとめます。
既定値 false
を使用すると、mergevars
は指定した変数を、出力 table の変数である 1 つの複数列配列にマージします。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
入力引数
vars
はパターン式をサポートしません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2018a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)