стек

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

Синтаксис

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 (http://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) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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

Была ли эта тема полезной?