стек

Сложите данные из нескольких переменных в одну переменную

Синтаксис

S = stack(U,vars)
S = stack(U,vars,Name,Value)
[S,iu] = stack(___)

Описание

пример

S = stack(U,vars) преобразовывает таблицу или расписание, U, в переводную таблицу или расписание, S, который сложен. Функция stack складывает несколько переменных из U, заданного vars, в одну переменную в S. В целом S содержит меньше переменных, но больше строк, чем U.

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

  • Если U является таблицей, то вы не можете сложить имена строки.

  • Если U является расписанием, то вы не можете сложить времена строки.

пример

S = stack(U,vars,Name,Value) преобразовывает таблицу, U, с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

Например, можно задать имена переменных для новых и сложенных переменных в U.

пример

[S,iu] = stack(___) также возвращает индексный вектор, iu, указывая на соответствие между строками в S и строками в U. Можно использовать любой из предыдущих входных параметров.

Примеры

свернуть все

Составьте таблицу, содержащую экзаменационные отметки от трех отдельных тестов. Таблица находится в распакованном формате.

Test1 = [93;57;87;89];
Test2 = [89;77;92;86];
Test3 = [95;62;89;91];

U = table(Test1,Test2,Test3)
U=4×3 table
    Test1    Test2    Test3
    _____    _____    _____

     93       89       95  
     57       77       62  
     87       92       89  
     89       86       91  

Таблица содержит четыре строки и три переменные.

Сложите экзаменационные отметки в одну переменную.

S = stack(U,1:3)
S=12×2 table
    Test1_Test2_Test3_Indicator    Test1_Test2_Test3
    ___________________________    _________________

               Test1                      93        
               Test2                      89        
               Test3                      95        
               Test1                      57        
               Test2                      77        
               Test3                      62        
               Test1                      87        
               Test2                      92        
               Test3                      89        
               Test1                      89        
               Test2                      86        
               Test3                      91        

S содержит двенадцать строк и две переменные. S находится в сложенном формате.

Категориальная переменная, Test1_Test2_Test3_Indicator, идентифицирует, какой тест соответствует счету в сложенной переменной данных, Test1_Test2_Test3.

Составьте таблицу, указывающую на сумму снегопада в трех местах от пяти отдельных штормов.

Storm = [1;2;3;4;5];
Date = {'12/25/11';'1/2/12';'1/23/12';'2/7/12';'2/15/12'};
Natick = [20;5;13;0;17];
Boston = [18;9;21;5;12];
Worcester = [26;10;16;3;15];

U = table(Storm,Date,Natick,Boston,Worcester)
U=5×5 table
    Storm       Date       Natick    Boston    Worcester
    _____    __________    ______    ______    _________

      1      '12/25/11'      20        18         26    
      2      '1/2/12'         5         9         10    
      3      '1/23/12'       13        21         16    
      4      '2/7/12'         0         5          3    
      5      '2/15/12'       17        12         15    

Переменные Storm и Date содержат данные, которые являются постоянными в каждом местоположении.

Сложите переменные Natick, Boston и Worcester в одну переменную. Назовите переменную, содержащую сложенные данные, Snowfall, и назовите новую переменную индикатора, Town.

S = stack(U,{'Natick','Boston','Worcester'},...
    'NewDataVariableName','Snowfall',...
    'IndexVariableName','Town')
S=15×4 table
    Storm       Date         Town       Snowfall
    _____    __________    _________    ________

      1      '12/25/11'    Natick          20   
      1      '12/25/11'    Boston          18   
      1      '12/25/11'    Worcester       26   
      2      '1/2/12'      Natick           5   
      2      '1/2/12'      Boston           9   
      2      '1/2/12'      Worcester       10   
      3      '1/23/12'     Natick          13   
      3      '1/23/12'     Boston          21   
      3      '1/23/12'     Worcester       16   
      4      '2/7/12'      Natick           0   
      4      '2/7/12'      Boston           5   
      4      '2/7/12'      Worcester        3   
      5      '2/15/12'     Natick          17   
      5      '2/15/12'     Boston          12   
      5      '2/15/12'     Worcester       15   

S содержит три строки для каждого шторма, и stack повторяет данные в постоянных переменных, Storm и Date, соответственно.

Категориальная переменная, Town, идентифицирует, какая переменная в U содержит соответствующие данные Snowfall.

Составьте таблицу, содержащую оцененные уровни гриппа вдоль восточного побережья Соединенных Штатов. Создайте различную переменную для Северо-востока, Середина Атлантики и Южной Атлантики. Источник данных: Google Flu Trends (https://www.google.org/flutrends).

Month = {'October';'November';'December';...
    'January';'February';'March'};
Year = [2005*ones(3,1); 2006*ones(3,1)];
NE = [1.1902; 1.3610; 1.5003; 1.7772; 2.1350; 2.2345];
MidAtl = [1.1865; 1.4120; 1.6043; 1.8830; 2.1227; 1.9920];
SAtl = [1.2730; 1.5820; 1.8625; 1.9540; 2.4803; 2.0203];

fluU = table(Month,Year,NE,MidAtl,SAtl)
fluU=6×5 table
      Month       Year      NE      MidAtl     SAtl 
    __________    ____    ______    ______    ______

    'October'     2005    1.1902    1.1865     1.273
    'November'    2005     1.361     1.412     1.582
    'December'    2005    1.5003    1.6043    1.8625
    'January'     2006    1.7772     1.883     1.954
    'February'    2006     2.135    2.1227    2.4803
    'March'       2006    2.2345     1.992    2.0203

Переменные Month и Year содержат данные, которые являются постоянными через строку.

Сложите переменные NE, MidAtl и SAtl в одну переменную под названием FluRate. Назовите новую переменную Region индикатора и выведите индексный вектор, ifluU, чтобы указать, что соответствие между строками во входе распаковало таблицу, fluU, и вывод сложил таблицу, fluS.

[fluS,ifluU] = stack(fluU,3:5,...
    'NewDataVariableName','FluRate',...
    'IndexVariableName','Region')
fluS=18×4 table
      Month       Year    Region    FluRate
    __________    ____    ______    _______

    'October'     2005    NE        1.1902 
    'October'     2005    MidAtl    1.1865 
    'October'     2005    SAtl       1.273 
    'November'    2005    NE         1.361 
    'November'    2005    MidAtl     1.412 
    'November'    2005    SAtl       1.582 
    'December'    2005    NE        1.5003 
    'December'    2005    MidAtl    1.6043 
    'December'    2005    SAtl      1.8625 
    'January'     2006    NE        1.7772 
    'January'     2006    MidAtl     1.883 
    'January'     2006    SAtl       1.954 
    'February'    2006    NE         2.135 
    'February'    2006    MidAtl    2.1227 
    'February'    2006    SAtl      2.4803 
    'March'       2006    NE        2.2345 
      ⋮

ifluU = 18×1

     1
     1
     1
     2
     2
     2
     3
     3
     3
     4
      ⋮

ifluU(5) является 2. Пятая строка в выходной таблице, fluS, содержит данные из второй строки во входной таблице fluU.

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

свернуть все

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

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

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'NewDataVariableName','StackedData' называет новую переменную данных StackedData.

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

Значением по умолчанию являются все переменные в U, не заданном vars. Можно задать аргумент пары "имя-значение" 'ConstantVariables', чтобы исключить переменные, не заданные vars или 'ConstantVariables' из выходной таблицы, S.

U может иметь метки строки по своему первому измерению. Если U является таблицей, то он может иметь имена строки как метки. Если U является расписанием, то он должен иметь времена строки как метки.

  • Можно включить имена строк или времена строки, когда вы задаете значение 'ConstantVariables'.

  • stack реплицирует имена строки или времена строки, даже когда вы не включаете их в 'ConstantVariables'.

Назовите для новой переменной данных в S, заданном как пара, разделенная запятой, состоящая из 'NewDataVariableName' и вектора символов, или представьте скаляр в виде строки. Значением по умолчанию является конкатенация имен переменных из U, которые сложены.

Назовите для новой переменной индикатора в S, заданном как пара, разделенная запятой, состоящая из 'IndexVariableName' и вектора символов, или представьте скаляр в виде строки. Значением по умолчанию является имя на основе NewDataVariableName.

Выходные аргументы

свернуть все

Сложенная таблица, возвращенная как таблица или расписание. S содержит сложенную переменную данных, категориальную переменную индикатора и любые постоянные переменные.

Можно сохранить дополнительные метаданные, такие как описания, переменные модули, имена переменных и имена строки в S. Для получения дополнительной информации смотрите разделы Свойств table или timetable.

stack присваивает переменные модули и значения свойств описания переменной от первой переменной, перечисленной в vars к соответствующему S.Properties.VariableUnits и значениям S.Properties.VariableDescrisciptions для новой переменной данных.

Индексируйте к U, возвращенному как вектор-столбец. Индексный вектор, iu, идентифицирует строку во входной таблице, U, содержа соответствующие данные. stack создает j th строка в выходной таблице, S, с помощью U(iu(j),vars).

Советы

  • Можно задать больше чем одну группу переменных данных в U, и каждая группа становится сложенной переменной данных в S. Используйте массив ячеек, чтобы содержать несколько значений для vars, и массив ячеек из символьных векторов или массив строк, чтобы содержать несколько значений для аргумента пары "имя-значение" 'NewDataVariableName'. Все группы должны содержать то же количество переменных.

Расширенные возможности

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

|

Введенный в R2013b

Для просмотра документации необходимо авторизоваться на сайте