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 имя аргумента и 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