このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
join
キー変数を使用した 2 つの table または timetable の組み合わせ
説明
は 2 つの入力の行をマージすることで table または timetable の T
= join(Tleft
,Tright
)Tleft
および Tright
を連結します。関数 join
は、Tleft
の各行が Tright
のちょうど 1 行に一致しなければならないシンプルな形式の連結操作を実行します。キー変数内の対応する値が同じである行が一致します。出力では、キー変数の値が一致している Tleft
のすべての行を Tright
の行に連結します。
たとえば、Tleft
に Key1
と Var1
という名前の変数があり、Tright
に変数 Key1
と Var2
がある場合、T=join(Tleft,Tright)
は Key1
をキー変数として使用します。
既定では、キー変数は次のとおりです。
両方の入力が table であるか、
Tleft
が timetable でTright
が table の場合は、Tleft
とTright
内の同じ名前の変数。Tleft
とTright
がともに timetable である場合は、行時間のベクトル。
一致しているキー変数の値の順序は、左右の入力で同じである必要はありません。また、Tright
のキー変数は、Tleft
のキー変数のすべての値を含まなければなりません。各値は、Tright
のキー変数に 1 回のみ出現しなければなりませんが、Tleft
のキー変数には複数回出現してもかまいません。したがって、連結操作は、Tleft
の複数の行に一致している Tright
の行を複製します。
入力は、両方とも table、両方とも timetable、または table と timetable それぞれ 1 つずつにできます。
Tleft
が table の場合、join
はT
を table として返します。Tleft
が timetable の場合、join
はT
を timetable として返します。
は、1 つ以上の T
= join(Tleft
,Tright
,Name,Value
)Name,Value
のペアの引数で指定された追加オプションを使用して、table または timetable を結合します。
たとえば、キー変数としてどの変数を使用するかを指定できます。
例
一方のテーブルから別のテーブルへの値の追加
table Tleft
を作成します。
Tleft = table({'Janice','Jonas','Javier','Jerry','Julie'}',[1;2;1;2;1],... 'VariableNames',{'Employee' 'Department'})
Tleft=5×2 table
Employee Department
__________ __________
{'Janice'} 1
{'Jonas' } 2
{'Javier'} 1
{'Jerry' } 2
{'Julie' } 1
Tleft
と 1 つの変数を共有する table Tright
を作成します。
Tright = table([1 2]',{'Mary' 'Mona'}',... 'VariableNames',{'Department' 'Manager'})
Tright=2×2 table
Department Manager
__________ ________
1 {'Mary'}
2 {'Mona'}
table Tleft
と table Tright
のデータを含む、新規 table T
を作成します。関数 join
を使用して、キー変数 Department
に基づいて table Tright
の Manager
のデータを反復し、table Tleft
のデータに追加します。
T = join(Tleft,Tright)
T=5×3 table
Employee Department Manager
__________ __________ ________
{'Janice'} 1 {'Mary'}
{'Jonas' } 2 {'Mona'}
{'Javier'} 1 {'Mary'}
{'Jerry' } 2 {'Mona'}
{'Julie' } 1 {'Mary'}
1 つの共通の変数をもつテーブルのマージ
table Tleft
を作成します。
Tleft = table([5;12;23;2;6],... {'cereal';'pizza';'salmon';'cookies';'pizza'},... 'VariableNames',{'Age','FavoriteFood'},... 'RowNames',{'Amy','Bobby','Holly','Harry','Sally'})
Tleft=5×2 table
Age FavoriteFood
___ ____________
Amy 5 {'cereal' }
Bobby 12 {'pizza' }
Holly 23 {'salmon' }
Harry 2 {'cookies'}
Sally 6 {'pizza' }
Tleft
と 1 つの変数を共有する table Tright
を作成します。
Tright = table({'cereal';'cookies';'pizza';'salmon';'cake'},... [110;160;140;367;243],... {'B';'D';'B-';'A';'C-'},... 'VariableNames',{'FavoriteFood','Calories','NutritionGrade'})
Tright=5×3 table
FavoriteFood Calories NutritionGrade
____________ ________ ______________
{'cereal' } 110 {'B' }
{'cookies'} 160 {'D' }
{'pizza' } 140 {'B-'}
{'salmon' } 367 {'A' }
{'cake' } 243 {'C-'}
table Tleft
および table Tright
のデータを含む新規 table T
を作成します。共通の変数 FavoriteFood
がキー変数として関数 join
によって使用されます。
T = join(Tleft,Tright)
T=5×4 table
Age FavoriteFood Calories NutritionGrade
___ ____________ ________ ______________
Amy 5 {'cereal' } 110 {'B' }
Bobby 12 {'pizza' } 140 {'B-'}
Holly 23 {'salmon' } 367 {'A' }
Harry 2 {'cookies'} 160 {'D' }
Sally 6 {'pizza' } 140 {'B-'}
table T
には、'cake'
に関する table Tright
の最後の行の情報が含まれていません。これは、table Tleft
に対応するエントリが存在しないためです。
1 つのキー変数を指定した、テーブルのマージ
table Tleft
を作成します。
Tleft = table([10;4;2;3;7],[5;4;9;6;1],[10;3;8;8;4])
Tleft=5×3 table
Var1 Var2 Var3
____ ____ ____
10 5 10
4 4 3
2 9 8
3 6 8
7 1 4
table Tright
の Var2
に table Tleft
の Var2
と同じ内容を指定して、table Tright
を作成します。
Tright = table([6;1;1;6;8],[5;4;9;6;1])
Tright=5×2 table
Var1 Var2
____ ____
6 5
1 4
1 9
6 6
8 1
table Tleft
と table Tright
のデータを含む、新規 table T
を作成します。table Tleft
および table Tright
の Var2
を関数 join
のキー変数として使用します。
T = join(Tleft,Tright,'Keys','Var2')
T=5×4 table
Var1_Tleft Var2 Var3 Var1_Tright
__________ ____ ____ ___________
10 5 10 6
4 4 3 1
2 9 8 1
3 6 8 6
7 1 4 8
join
は、非キー変数 Var1
に一意の接尾辞を追加して、table Tleft
と table Tright
のデータを識別します。
非キー変数の 1 コピーの維持
table Tleft
および table Tright
のデータを含む新規 table を作成します。両方の table で非キー変数の名前が同じ場合、table Tleft
のコピーだけを維持します。
table Tleft
を作成します。
Tleft = table([10;4;2;3;7],[5;4;9;6;1])
Tleft=5×2 table
Var1 Var2
____ ____
10 5
4 4
2 9
3 6
7 1
table Tright
の Var2
に table Tleft
の Var2
と同じ内容を指定して、table Tright
を作成します。
Tright = table([6;1;1;6;8],[5;4;9;6;1],[10;3;8;8;4])
Tright=5×3 table
Var1 Var2 Var3
____ ____ ____
6 5 10
1 4 3
1 9 8
6 6 8
8 1 4
table Tleft
および table Tright
のデータを含む新規 table T
を作成します。Var2
を関数 join
のキー変数として使用し、table Tleft
の Var1
のコピーだけを維持します。出力 table T
に、table Tright
の Var1
データは含まれません。
T = join(Tleft,Tright,'Keys','Var2','KeepOneCopy','Var1')
T=5×3 table
Var1 Var2 Var3
____ ____ ____
10 5 10
4 4 3
2 9 8
3 6 8
7 1 4
行の名前をキーとして使用した、テーブルのマージ
table Tleft
を作成します。
Tleft = table(['M';'M';'F';'F';'F'],[38;43;38;40;49],... 'VariableNames',{'Gender' 'Age'},... 'RowNames',{'Smith' 'Johnson' 'Williams' 'Jones' 'Brown'})
Tleft=5×2 table
Gender Age
______ ___
Smith M 38
Johnson M 43
Williams F 38
Jones F 40
Brown F 49
Tleft
の行と Tright
の行が 1 対 1 で対応するように、table Tright
を作成します。
Tright = table([64;69;67;71;64],... [119;163;133;176;131],... [122 80; 109 77; 117 75; 124 93; 125 83],... 'VariableNames',{'Height' 'Weight' 'BloodPressure'},... 'RowNames',{'Brown' 'Johnson' 'Jones' 'Smith' 'Williams'})
Tright=5×3 table
Height Weight BloodPressure
______ ______ _____________
Brown 64 119 122 80
Johnson 69 163 109 77
Jones 67 133 117 75
Smith 71 176 124 93
Williams 64 131 125 83
table Tleft
および table Tright
のデータを含む新規 table T
を作成します。行名のベクトルをキー変数として使用します (Tleft.Properties.DimensionNames{1}
で示されるように、table の行名のベクトルの名前は 'Row'
です)。
T = join(Tleft,Tright,'Keys','Row')
T=5×5 table
Gender Age Height Weight BloodPressure
______ ___ ______ ______ _____________
Smith M 38 71 176 124 93
Johnson M 43 69 163 109 77
Williams F 38 64 131 125 83
Jones F 40 67 133 117 75
Brown F 49 64 119 122 80
T
の行は Tleft
と同じ順序になります。
右キーと左キーを使用した、テーブルのマージ
table Tleft
を作成します。
Tleft = table([10;4;2;3;7],[5;4;9;6;1],[10;3;8;8;4])
Tleft=5×3 table
Var1 Var2 Var3
____ ____ ____
10 5 10
4 4 3
2 9 8
3 6 8
7 1 4
table Tright
の Var2
に table Tleft
の Var1
と同じ内容を異なる順序で指定して、table Tright
を作成します。
Tright = table([6;1;1;6;8],[2;3;4;7;10])
Tright=5×2 table
Var1 Var2
____ ____
6 2
1 3
1 4
6 7
8 10
table Tleft
と table Tright
のデータを含む、新規 table T
を作成します。テーブル Tleft
の Var1
とテーブル Tright
の Var2
を、関数 join
のキー変数として使用します。
[T,iright] = join(Tleft,Tright,'LeftKeys',1,'RightKeys',2)
T=5×4 table
Var1_Tleft Var2 Var3 Var1_Tright
__________ ____ ____ ___________
10 5 10 8
4 4 3 1
2 9 8 6
3 6 8 1
7 1 4 6
iright = 5×1
5
3
1
2
4
T
は、Tleft
と Tright(iright,1)
を水平に連結したものです。
timetable のマージ
同じ行時間と異なる変数をもつ 2 つの timetable を作成します。
Traffic = [0.8 0.9 0.1 0.7 0.9]'; Noise = [0 1 1.5 2 2.3]'; Tleft = timetable(hours(1:5)',Traffic,Noise)
Tleft=5×2 timetable
Time Traffic Noise
____ _______ _____
1 hr 0.8 0
2 hr 0.9 1
3 hr 0.1 1.5
4 hr 0.7 2
5 hr 0.9 2.3
Distance = [0.88 0.86 0.91 0.9 0.86]'; Tright = timetable(hours(1:5)',Distance)
Tright=5×1 timetable
Time Distance
____ ________
1 hr 0.88
2 hr 0.86
3 hr 0.91
4 hr 0.9
5 hr 0.86
timetable をマージします。join
はキー変数として行時間を使用します。
T = join(Tleft,Tright)
T=5×3 timetable
Time Traffic Noise Distance
____ _______ _____ ________
1 hr 0.8 0 0.88
2 hr 0.9 1 0.86
3 hr 0.1 1.5 0.91
4 hr 0.7 2 0.9
5 hr 0.9 2.3 0.86
timetable と table のマージ
timetable と table を作成します。
Measurements = [0.13 0.22 0.31 0.42 0.53 0.57 0.67 0.81 0.90 1.00]'; Device = ['A';'B';'A';'B';'A';'B';'A';'B';'A';'B']; Tleft = timetable(seconds(1:10)',Measurements,Device)
Tleft=10×2 timetable
Time Measurements Device
______ ____________ ______
1 sec 0.13 A
2 sec 0.22 B
3 sec 0.31 A
4 sec 0.42 B
5 sec 0.53 A
6 sec 0.57 B
7 sec 0.67 A
8 sec 0.81 B
9 sec 0.9 A
10 sec 1 B
Device = ['A';'B']; Accuracy = [0.023;0.037]; Tright = table(Device,Accuracy)
Tright=2×2 table
Device Accuracy
______ ________
A 0.023
B 0.037
timetable と table をマージします。Tleft
と Tright
の両方に Device
という名前の変数があるため、それがキー変数になります。T
は timetable です。
T = join(Tleft,Tright)
T=10×3 timetable
Time Measurements Device Accuracy
______ ____________ ______ ________
1 sec 0.13 A 0.023
2 sec 0.22 B 0.037
3 sec 0.31 A 0.023
4 sec 0.42 B 0.037
5 sec 0.53 A 0.023
6 sec 0.57 B 0.037
7 sec 0.67 A 0.023
8 sec 0.81 B 0.037
9 sec 0.9 A 0.023
10 sec 1 B 0.037
入力引数
Tleft
— 左のテーブル
table | timetable
左のテーブル。table または timetable として指定します。すべてのキー変数について、Tleft
の各行は、Tright
の 1 行に正確に一致しなければなりません。
Tright
— 右のテーブル
table | timetable
右のテーブル。table または timetable として指定します。すべてのキー変数について、Tright
の各行は、Tleft
の 1 行に正確に一致しなければなりません。
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: 'Keys',2
は、Tleft
の 2 番目の変数と Tright
の 2 番目の変数をキー変数として使用します。
Keys
— キーとして使用する変数
正の整数 | 正の整数のベクトル | string 配列 | 文字ベクトル | 文字ベクトルの cell 配列 | pattern
スカラー | logical ベクトル
キーとして使用する変数。'Keys'
と、正の整数、正の整数のベクトル、string 配列、文字ベクトル、文字ベクトルの cell 配列、pattern
スカラー、または logical ベクトルのいずれかで構成される、コンマ区切りのペアとして指定します。
名前と値のペアの引数 'Keys'
を名前と値のペアの引数 'LeftKeys'
および 'RightKeys'
と共に使用することはできません。
入力 table または timetable からの行ラベルのベクトルは、単独のキーまたは他のキー変数と組み合わせたキーにすることができます。行ラベルは、table の行名または timetable の行時間です。このベクトルをキーとして使用するには、(table の行名に対して) 'Row'
として、行時間の timetable ベクトルの名前として、または
の値として指定します。ここで T
.Properties.DimensionNames{1}
は table または timetable です。T
下位互換性のため、Tleft
と Tright
が行名をもつ table の場合、'Keys'
の値を 'RowNames'
として指定することもできます。しかし、ベスト プラクティスは 'Keys'
の値を行名のベクトルの名前として指定することです。
例: 'Keys',[1 3]
は、Tleft
および Tright
の最初の変数と 3 番目の変数をキー変数として使用します。
例: 'Keys',{'X','Y'}
は、Tleft
と Tright
の X
と Y
という名前の変数をキー変数として使用します。
例: 'Keys','Row'
は、Tleft
と Tright
の両方が行名をもつ table の場合、Tleft
と Tright
の行名のベクトルをキー変数として使用します。
LeftKeys
— Tleft
でキーとして使用する変数
正の整数 | 正の整数のベクトル | string 配列 | 文字ベクトル | 文字ベクトルの cell 配列 | pattern
スカラー | logical ベクトル
Tleft
でキーとして使用する変数。'LeftKeys'
と、正の整数、正の整数のベクトル、string 配列、文字ベクトル、文字ベクトルの cell 配列、pattern
スカラー、または logical ベクトルのいずれかで構成される、コンマ区切りのペアとして指定します。
名前と値のペアの引数 'LeftKeys'
は名前と値のペアの引数 'RightKeys'
と組み合わせて使用しなければなりません。'LeftKeys'
および 'RightKeys'
には、同じ数のキー変数を指定しなければなりません。join
は、Tleft
と Tright
のキー値をその順序に基づいて組み合わせます。
入力 table または timetable からの行ラベルのベクトルは、単独のキーまたは他のキー変数と組み合わせたキーにすることができます。行ラベルは、table の行名または timetable の行時間です。このベクトルをキーとして使用するには、(table の行名に対して) 'Row'
として、行時間の timetable ベクトルの名前として、または
の値として指定します。ここで T
.Properties.DimensionNames{1}
は table または timetable です。T
例: 'LeftKeys',1
は、Tleft
の最初の変数のみをキー変数として使用します。
RightKeys
— Tright
でキーとして使用する変数
正の整数 | 正の整数のベクトル | string 配列 | 文字ベクトル | 文字ベクトルの cell 配列 | pattern
スカラー | logical ベクトル
Tright
でキーとして使用する変数。'RightKeys'
と、正の整数、正の整数のベクトル、string 配列、文字ベクトル、文字ベクトルの cell 配列、pattern
スカラー、または logical ベクトルのいずれかで構成される、コンマ区切りのペアとして指定します。
名前と値のペアの引数 'RightKeys'
は名前と値のペアの引数 'LeftKeys'
と組み合わせて使用しなければなりません。'LeftKeys'
および 'RightKeys'
には、同じ数のキー変数を指定しなければなりません。join
は、Tleft
と Tright
のキー値をその順序に基づいて組み合わせます。
入力 table または timetable からの行ラベルのベクトルは、単独のキーまたは他のキー変数と組み合わせたキーにすることができます。行ラベルは、table の行名または timetable の行時間です。このベクトルをキーとして使用するには、(table の行名に対して) 'Row'
として、行時間の timetable ベクトルの名前として、または
の値として指定します。ここで T
.Properties.DimensionNames{1}
は table または timetable です。T
例: 'RightKeys',3
は、Tright
の 3 番目の変数のみをキー変数として使用します。
LeftVariables
— T
に含める Tleft
の変数
正の整数 | 正の整数のベクトル | string 配列 | 文字ベクトル | 文字ベクトルの cell 配列 | pattern
スカラー | logical ベクトル
T
に含める Tleft
の変数。'LeftVariables'
と、正の整数、正の整数のベクトル、string 配列、文字ベクトル、文字ベクトルの cell 配列、pattern
スカラー、または logical ベクトルのいずれかで構成される、コンマ区切りのペアとして指定します。
'LeftVariables'
を使用すると、T
にキー変数および非キー変数を含めたり、除外したりできます。ただし、Tleft
の行名または行時間は変数ではないため、含めることはできません。
既定で、join
には Tleft
のすべての変数が含まれます。
RightVariables
— T
に含める Tright
の変数
正の整数 | 正の整数のベクトル | string 配列 | 文字ベクトル | 文字ベクトルの cell 配列 | pattern
スカラー | logical ベクトル
T
に含める Tright
の変数。'RightVariables'
と、正の整数、正の整数のベクトル、string 配列、文字ベクトル、文字ベクトルの cell 配列、pattern
スカラー、または logical ベクトルのいずれかで構成される、コンマ区切りのペアとして指定します。
'RightVariables'
を使用すると、T
にキー変数および非キー変数を含めたり、除外したりできます。ただし、Tright
の行名または行時間は変数ではないため、含めることはできません。
既定で、join
は、キー変数以外の Tright
のすべての変数を含めます。
KeepOneCopy
— join
が Tleft
からのコピーのみを保持する変数
string 配列 | 文字ベクトル | 文字ベクトルの cell 配列 | pattern
スカラー
join
が Tleft
からのコピーのみを保持する変数。'KeepOneCopy'
と、変数名を指定する string 配列、文字ベクトル、文字ベクトルの cell 配列、または pattern
スカラーで構成される、コンマ区切りのペアとして指定します。
キー変数は T
に 1 回出現しますが、同じ名前をもつ非キー変数が Tleft
と Tright
に出現する場合、join
は既定で T
に両方のコピーを保持します。Tleft
からのコピーのみを保持するには、'KeepOneCopy'
の名前と値のペアを使用します。
例: 'KeepOneCopy',Var2
は、Tleft
からの非キー変数 Var2
のコピーのみを保持します。
出力引数
T
— Tleft
および Tright
からのマージされたデータ
table | timetable
Tleft
および Tright
からのマージされたデータ。table または timetable として返されます。テーブル T
には、Tleft
の各行に対応する 1 行が同じ順序で出現します。
join
は、Tleft(:,LeftVars)
と Tright(iright,RightVars)
を水平方向に連結して T
を作成します。既定で、LeftVars
は Tleft
のすべての変数で、RightVars
は Tright
のすべての非キー変数です。そうでない場合、LeftVars
は名前と値のペアの引数 'LeftVariables'
で指定された変数で構成され、RightVars
は名前と値のペアの引数 'RightVariables'
で指定された変数で構成されます。
Tleft
と Tright
に同じ名前の非キー変数が含まれているとき、'KeepOneCopy'
の名前と値のペアの引数が指定されている場合を除き、join
は T
の対応する変数名に一意の接尾辞を追加します。
Tleft
が table の場合、T
も table です。Tleft
が timetable で Tright
が timetable または table のいずれかの場合、T
は timetable です。
T
には、説明、変数単位、変数名、行名などの追加のメタデータを格納できます。詳細については、table
または timetable
のプロパティの節を参照してください。
iright
— Tright
のインデックス
列ベクトル
Tright
のインデックス。列ベクトルとして返されます。iright
の各要素は、出力 table または出力 timetable である T
の行に対応する Tright
の行を示します。
詳細
アルゴリズム
関数 join
は最初に 1 つ以上のキー変数を検索します。次に、join
はそのキー変数を使用して、入力テーブル Tleft
の各行に一致する入力テーブル Tright
の行を検索し、これらの行を結合して、出力テーブル T
の行を作成します。
Tleft
とTright
のキー値が 1 対 1 でマッピングされている場合、join
はTright
のデータを並べ替えて、テーブルTleft
に追加します。Tleft
とTright
のキー値が多対 1 でマッピングされている場合、join
はTright
のデータの並べ替えと反復を行ってから、テーブルTleft
に追加します。Tleft
のキー値にマッピングされないキー変数のデータがTright
内に存在する場合、join
は出力テーブルT
にそのデータを含めません。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
使用上の注意事項および制限事項:
tall timetable と tall table を結合するには、timetable が
join
への最初の入力でなければなりません。以下の名前と値の引数の値は、パターン式をサポートしません。
'Keys'
'LeftKeys'
'RightKeys'
'LeftVariables'
'RightVariables'
'KeepOneCopy'
詳細については、tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
通常、入力 table に同じ名前の非キー変数を含めることはできません。ただし、名前と値の引数を指定すると、入力 table のサブセットを連結できます。
'KeepOneCopy'
。ここで左の入力 table のみから取り出す変数をリストします。'LeftVariables'
および'RightVariables'
。ここで左の入力 table または右の入力 table のどちらか一方のみから取り出す変数をリストします。
以下の名前と値の引数の値は定数でなければなりません。
'Keys'
'LeftKeys'
'RightKeys'
'LeftVariables'
'RightVariables'
'KeepOneCopy'
以下の名前と値の引数の値は、パターン式をサポートしません。
'Keys'
'LeftKeys'
'RightKeys'
'LeftVariables'
'RightVariables'
'KeepOneCopy'
入れ子の table および timetable はサポートされていません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2013b で導入
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)