How to convert one column of a table into numeric data type corresponding to the other column of the same table?

1 回表示 (過去 30 日間)
I have the table as shown below:
I need to calculate a multiple comparison test, which includes the means plots for each genre. When I try to apply its process, they say that the genre (string) and runtime (int) are of different types so cant be processed. I want to convert the genre column to numeric w.r.t the runtime column. E.g Action = 1, comedy = 2, Animation = 3 and Biography = 4. Can someone please guide me how to do this? I am stuck at here. Thanks alot in advance,

採用された回答

Wan Ji
Wan Ji 2021 年 8 月 26 日
編集済み: Wan Ji 2021 年 8 月 26 日
If you have a table T with field names genre and runtime, then
genre = {'ab','a','a','o','abo'}';
runtime = [11,12,13,14,45]';
T = table(genre, runtime);
[Q,ia,ic] = unique(T{:,'genre'});
Q = categorical(Q); % this is the categorical of genre
genre = ic;
T(:,'genre') = [];
T{:,'genre'} = ic;
  3 件のコメント
Wan Ji
Wan Ji 2021 年 8 月 26 日
編集済み: Wan Ji 2021 年 8 月 26 日
So I also need your encouragement, please acecept my answer if it worked@Haider Ali

サインインしてコメントする。

その他の回答 (1 件)

Peter Perkins
Peter Perkins 2022 年 3 月 2 日
This is perhaps slightly more clear:
>> genre = {'ab','a','a','o','abo'}';
>> runtime = [11,12,13,14,45]';
>> T = table(genre, runtime);
>> T.genre = categorical(T.genre);
>> T.genreID = double(T.genre)
T =
5×3 table
genre runtime genreID
_____ _______ _______
ab 11 2
a 12 1
a 13 1
o 14 4
abo 45 3

カテゴリ

Help Center および File ExchangeData Type Identification についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by