rows2vars

Переориентируйте таблицу или расписание так, чтобы строки стали переменными

Описание

пример

T2 = rows2vars(T1) переориентирует строки T1, так, чтобы они стали переменными в выходной таблице T2, как показано в схеме. Если rows2vars может конкатенировать содержимое строк T1, затем соответствующие переменные T2 массивы. В противном случае, переменные T2 массивы ячеек. rows2vars всегда возвращает таблицу, хотя T1 может быть или таблица или расписание.

rows2vars функционируйте копирует имена переменных T1 к новой переменной T2. Если T1 имеет имена строки или времена строки, затем те имена или времена становятся именами переменных T2. В противном случае, rows2vars генерирует называет Var1,…,VarN как имена переменных T2.

пример

T2 = rows2vars(T1,'VariableNamesSource',varnames) задает переменную в T1 как источник имен, данных переменным T2. Можно задать varnames как имя переменной или числовой или логический индекс.

пример

T2 = rows2vars(___,'DataVariables',datavars) выбирает переменные T1 заданный datavars и переориентирует только те переменные, чтобы стать строками T2. Остающиеся переменные T1 отбрасываются. datavars могут быть одни или несколько имен переменных, массив числовых или логических индексов или объект индексирования (например, выход vartype функция. Можно использовать этот синтаксис с входными параметрами любого из предыдущих синтаксисов.

Если вы задаете переменную с помощью 'VariableNamesSource' аргумент пары "имя-значение" от предыдущего синтаксиса, затем вы не можете задать ту переменную в datavars.

Примеры

свернуть все

Составьте таблицы, и затем переориентируйте их строки, чтобы быть переменными в новых таблицах.

Загрузите массивы данных из patients.mat файл. Составьте таблицу, которая содержит LastName, Gender, Ageвысота, и Weight переменные.

load patients
T1 = table(LastName,Gender,Age,Height,Weight);
head(T1,3)
ans=3×5 table
      LastName        Gender      Age    Height    Weight
    ____________    __________    ___    ______    ______

    {'Smith'   }    {'Male'  }    38       71       176  
    {'Johnson' }    {'Male'  }    43       69       163  
    {'Williams'}    {'Female'}    38       64       131  

Переориентируйте строки T1, чтобы быть переменными выходной таблицы.

T2 = rows2vars(T1);

Отобразите первые четыре переменные T2. Первая переменная T2 содержит имена переменных T1. Остающиеся переменные T2 соответствуйте строкам T1. Начиная с T1 не имел никаких меток строки, переменных T2 имейте имена по умолчанию, Var1 к VarN для N переменные.

T2(:,1:4)
ans=5×4 table
    OriginalVariableNames      Var1          Var2            Var3    
    _____________________    _________    ___________    ____________

        {'LastName'}         {'Smith'}    {'Johnson'}    {'Williams'}
        {'Gender'  }         {'Male' }    {'Male'   }    {'Female'  }
        {'Age'     }         {[   38]}    {[     43]}    {[      38]}
        {'Height'  }         {[   71]}    {[     69]}    {[      64]}
        {'Weight'  }         {[  176]}    {[    163]}    {[     131]}

Составьте таблицу с именами строки. Если таблица имеет имена строки, то rows2vars превращает имена строки на имена переменных.

T3 = table(Gender,Age,Height,Weight,'RowNames',LastName);
head(T3,3)
ans=3×4 table
                  Gender      Age    Height    Weight
                __________    ___    ______    ______

    Smith       {'Male'  }    38       71       176  
    Johnson     {'Male'  }    43       69       163  
    Williams    {'Female'}    38       64       131  

Переориентируйте строки T3.

T4 = rows2vars(T3);
T4(:,1:4)
ans=4×4 table
    OriginalVariableNames     Smith      Johnson      Williams 
    _____________________    ________    ________    __________

         {'Gender'}          {'Male'}    {'Male'}    {'Female'}
         {'Age'   }          {[  38]}    {[  43]}    {[    38]}
         {'Height'}          {[  71]}    {[  69]}    {[    64]}
         {'Weight'}          {[ 176]}    {[ 163]}    {[   131]}

Загрузите расписание и отобразите его.

load bostonTT
Boston
Boston=6×3 timetable
           Time            Temp    WindSpeed    Rain
    ___________________    ____    _________    ____

    2016-06-09 06:03:00    59.5       0.1       0.05
    2016-06-09 12:00:23      63       2.3       0.08
    2016-06-09 18:02:57    61.7       3.1       0.13
    2016-06-10 06:01:47    55.4       5.7       0.15
    2016-06-10 12:06:00    62.3       2.6       0.87
    2016-06-10 18:02:57    58.8       6.2       0.33

Переориентируйте его так, чтобы его строки стали переменными в выходе. Функция rows2vars превращает времена строки на имена, но должна изменить их так, чтобы они были допустимыми именами переменной. Кроме того, выходным аргументом, возвращенным rows2vars, всегда является таблица, даже когда входной параметр является расписанием.

T = rows2vars(Boston)
Warning: Variable names were modified to make them valid MATLAB identifiers.
T=3×7 table
    OriginalVariableNames    x2016_06_0906_03_00    x2016_06_0912_00_23    x2016_06_0918_02_57    x2016_06_1006_01_47    x2016_06_1012_06_00    x2016_06_1018_02_57
    _____________________    ___________________    ___________________    ___________________    ___________________    ___________________    ___________________

         'Temp'                     59.5                     63                   61.7                   55.4                   62.3                   58.8        
         'WindSpeed'                 0.1                    2.3                    3.1                    5.7                    2.6                    6.2        
         'Rain'                     0.05                   0.08                   0.13                   0.15                   0.87                   0.33        

Считайте данные из электронной таблицы в таблицу. Отобразите первые три строки.

T1 = readtable('patients.xls');
head(T1,3)
ans=3×10 table
      LastName        Gender      Age              Location               Height    Weight    Smoker    Systolic    Diastolic    SelfAssessedHealthStatus
    ____________    __________    ___    _____________________________    ______    ______    ______    ________    _________    ________________________

    {'Smith'   }    {'Male'  }    38     {'County General Hospital'  }      71       176      true        124          93             {'Excellent'}      
    {'Johnson' }    {'Male'  }    43     {'VA Hospital'              }      69       163      false       109          77             {'Fair'     }      
    {'Williams'}    {'Female'}    38     {'St. Mary's Medical Center'}      64       131      false       125          83             {'Good'     }      

Переориентируйте строки T1 быть переменными новой таблицы, T2. Укажите что LastName переменная из T1 источник имен переменных T2.

T2 = rows2vars(T1,'VariableNamesSource','LastName');

Отобразите первые четыре переменные T2. Первая переменная T2 содержит имена переменных T1. Остающиеся переменные T2 соответствуйте строкам T1.

T2(:,1:4)
ans=9×4 table
       OriginalVariableNames                   Smith                   Johnson                  Williams           
    ____________________________    ___________________________    _______________    _____________________________

    {'Gender'                  }    {'Male'                   }    {'Male'       }    {'Female'                   }
    {'Age'                     }    {[                     38]}    {[         43]}    {[                       38]}
    {'Location'                }    {'County General Hospital'}    {'VA Hospital'}    {'St. Mary's Medical Center'}
    {'Height'                  }    {[                     71]}    {[         69]}    {[                       64]}
    {'Weight'                  }    {[                    176]}    {[        163]}    {[                      131]}
    {'Smoker'                  }    {[                      1]}    {[          0]}    {[                        0]}
    {'Systolic'                }    {[                    124]}    {[        109]}    {[                      125]}
    {'Diastolic'               }    {[                     93]}    {[         77]}    {[                       83]}
    {'SelfAssessedHealthStatus'}    {'Excellent'              }    {'Fair'       }    {'Good'                     }

Отобразите данные в T2.Smith. В этом примере, каждой переменной T2 9 1 массив ячеек, потому что значения в строках T1 не может быть конкатенирован в массивы.

T2.Smith
ans=9×1 cell
    {'Male'                   }
    {[                     38]}
    {'County General Hospital'}
    {[                     71]}
    {[                    176]}
    {[                      1]}
    {[                    124]}
    {[                     93]}
    {'Excellent'              }

Считайте данные из электронной таблицы в таблицу. Используйте первый столбец электронной таблицы как имена строки таблицы. Отобразите первые три строки.

T1 = readtable('patients.xls','ReadRowNames',true);
head(T1,3)
ans=3×9 table
                  Gender      Age              Location               Height    Weight    Smoker    Systolic    Diastolic    SelfAssessedHealthStatus
                __________    ___    _____________________________    ______    ______    ______    ________    _________    ________________________

    Smith       {'Male'  }    38     {'County General Hospital'  }      71       176      true        124          93             {'Excellent'}      
    Johnson     {'Male'  }    43     {'VA Hospital'              }      69       163      false       109          77             {'Fair'     }      
    Williams    {'Female'}    38     {'St. Mary's Medical Center'}      64       131      false       125          83             {'Good'     }      

Переориентируйте заданные переменные из T1 и отбросьте остальных. Чтобы задать переменные данных по наименованию, используйте массив ячеек из символьных векторов.

T2 = rows2vars(T1,'DataVariables',{'Gender','Age','Height','Weight'});
T2(:,1:4)
ans=4×4 table
    OriginalVariableNames     Smith      Johnson      Williams 
    _____________________    ________    ________    __________

         {'Gender'}          {'Male'}    {'Male'}    {'Female'}
         {'Age'   }          {[  38]}    {[  43]}    {[    38]}
         {'Height'}          {[  71]}    {[  69]}    {[    64]}
         {'Weight'}          {[ 176]}    {[ 163]}    {[   131]}

Также можно задать переменные данных положением во входной таблице. Чтобы задать положения переменных, используйте числовой массив.

T3 = rows2vars(T1,'DataVariables',[1 2 6:9]);
T3(:,1:4)
ans=6×4 table
       OriginalVariableNames            Smith        Johnson      Williams 
    ____________________________    _____________    ________    __________

    {'Gender'                  }    {'Male'     }    {'Male'}    {'Female'}
    {'Age'                     }    {[       38]}    {[  43]}    {[    38]}
    {'Smoker'                  }    {[        1]}    {[   0]}    {[     0]}
    {'Systolic'                }    {[      124]}    {[ 109]}    {[   125]}
    {'Diastolic'               }    {[       93]}    {[  77]}    {[    83]}
    {'SelfAssessedHealthStatus'}    {'Excellent'}    {'Fair'}    {'Good'  }

Входные параметры

свернуть все

Входная таблица, заданная как таблица или расписание.

Источник имен для выходных табличных переменных, заданных как вектор символов, представляет в виде строки скаляр, целое число или логический массив.

  • Если varnames вектор символов или скаляр строки, затем это - имя переменной во входной таблице T1.

  • Если varnames целочисленный n, затем это указывает на nпеременная th в T1.

  • Если varnames логический массив, затем он указывает на nпеременная th путем определения ее nэлемент th как 1 TRUE). Всеми другими элементами должен быть 0 ложь).

В то время как varnames должно быть имя, номер или логический массив, который задает табличную переменную, сама переменная может иметь любой тип данных с этими ограничениями.

  • Значения, содержавшиеся в заданной табличной переменной, должны иметь тип данных, который позволяет значениям быть преобразованными в строки. Например, varnames может быть имя табличной переменной, которая содержит массив datetime, потому что значения datetime могут быть преобразованы в строки.

  • Количество имен, взятых из заданной табличной переменной, должно совпадать с количеством строк входной таблицы.

Переменные во входной таблице, заданной как вектор символов, массив ячеек из символьных векторов, массив строк, числовой массив, логический массив, или преобразовывающий объект в нижний индекс.

Смотрите также

| | | | | |

Введенный в R2018a