代码之家  ›  专栏  ›  技术社区  ›  user6883405

垂直堆叠列[重复]

  •  0
  • user6883405  · 技术社区  · 7 年前

    我在R中有一个元素列表,我使用以下函数水平组合了这些元素:

    df <- do.call(cbind.data.frame, list)
    

    我不想水平组合每一列,而是垂直堆叠这些列。例如,使用我的代码后的当前解决方案如下所示:

    Date        C1  C2  C3  C4  C5
    1/1/2017    36  55  50  89  47
    1/2/2017    22  53  22  41  23
    1/3/2017    24  43  96  100 42
    1/4/2017    17  75  45  88  54
    1/5/2017    43  83  83  66  71
    1/6/2017    5   6   1   86  26
    1/7/2017    47  92  58  46  78
    1/8/2017    4   55  95  34  71
    1/9/2017    20  7   3   80  52
    1/10/2017   55  65  26  85  38
    1/11/2017   78  63  20  49  24
    1/12/2017   70  40  58  88  11
    1/13/2017   40  63  75  61  38
    1/14/2017   14  45  30  93  72
    1/15/2017   2   64  88  68  81
    1/16/2017   56  8   24  44  4
    1/17/2017   94  47  48  31  77
    1/18/2017   79  96  15  85  89
    1/19/2017   95  33  45  39  48
    

    鉴于我希望它看起来像这样:

    Date    Price   C#
    1/1/2017    36  C1
    1/2/2017    22  C1
    1/3/2017    24  C1
    1/4/2017    17  C1
    1/5/2017    43  C1
    1/6/2017    5   C1
    1/7/2017    47  C1
    1/8/2017    4   C1
    1/9/2017    20  C1
    1/10/2017   55  C1
    1/11/2017   78  C1
    1/12/2017   70  C1
    1/13/2017   40  C1
    1/14/2017   14  C1
    1/15/2017   2   C1
    1/16/2017   56  C1
    1/17/2017   94  C1
    1/18/2017   79  C1
    1/19/2017   95  C1
    1/1/2017    55  C2
    1/2/2017    53  C2
    1/3/2017    43  C2
    1/4/2017    75  C2
    1/5/2017    83  C2
    1/6/2017    6   C2
    1/7/2017    92  C2
    1/8/2017    55  C2
    1/9/2017    7   C2
    1/10/2017   65  C2
    1/11/2017   63  C2
    1/12/2017   40  C2
    1/13/2017   63  C2
    1/14/2017   45  C2
    1/15/2017   64  C2
    1/16/2017   8   C2
    1/17/2017   47  C2
    1/18/2017   96  C2
    1/19/2017   33  C2
    1/1/2017    50  C2
    1/2/2017    22  C3
    1/3/2017    96  C3
    1/4/2017    45  C3
    1/5/2017    83  C3
    1/6/2017    1   C3
    1/7/2017    58  C3
    1/8/2017    95  C3
    1/9/2017    3   C3
    1/10/2017   26  C3
    1/11/2017   20  C3
    1/12/2017   58  C3
    1/13/2017   75  C3
    1/14/2017   30  C3
    1/15/2017   88  C3
    1/16/2017   24  C3
    1/17/2017   48  C3
    1/18/2017   15  C3
    1/19/2017   45  C3
    1/1/2017    89  C3
    1/2/2017    41  C3
    1/3/2017    100 C4
    1/4/2017    88  C4
    1/5/2017    66  C4
    1/6/2017    86  C4
    1/7/2017    46  C4
    1/8/2017    34  C4
    1/9/2017    80  C4
    1/10/2017   85  C4
    1/11/2017   49  C4
    1/12/2017   88  C4
    1/13/2017   61  C4
    1/14/2017   93  C4
    1/15/2017   68  C4
    1/16/2017   44  C4
    1/17/2017   31  C4
    1/18/2017   85  C4
    1/19/2017   39  C4
    1/1/2017    47  C4
    1/2/2017    23  C4
    1/3/2017    42  C4
    1/4/2017    54  C5
    1/5/2017    71  C5
    1/6/2017    26  C5
    1/7/2017    78  C5
    1/8/2017    71  C5
    1/9/2017    52  C5
    1/10/2017   38  C5
    1/11/2017   24  C5
    1/12/2017   11  C5
    1/13/2017   38  C5
    1/14/2017   72  C5
    1/15/2017   81  C5
    1/16/2017   4   C5
    1/17/2017   77  C5
    1/18/2017   89  C5
    1/19/2017   48  C5
    

    如何修改c.bind函数以垂直而不是水平地组合列表?

    1 回复  |  直到 7 年前
        1
  •  0
  •   user6883405    7 年前

    使用前面的代码在df上使用cbind函数和堆栈函数:

    cbind(mydf[1:1], stack(lapply(mydf[2:5], as.character)))