使用列表创建多列

时间:2019-05-07 04:13:44

标签: r

我有一个数据帧my_OHLCV_data的列表,但是我无法用带有对应名称的列表创建新列。

这就是我得到的:

 print(my_OHLCV_data)
    [[1]]
               Open High Low Close   Volume Adjusted
    2019-03-11 8.61  8.8 5.9  8.54 12245200     8.54

    [[2]]
               Open High  Low Close   Volume Adjusted
    2019-03-08 1.75  2.9 1.43  1.54 21725300     1.54

    [[3]]
               Open High  Low Close   Volume Adjusted
    2019-02-22 2.78 4.54 2.72   3.3 68893400      3.3

    print(symbols_names)
    [1] "TTNP" "AVCO" "CCCL"

这就是我要寻找的:

  print(my_OHLCV_data)
    [[1]]
               Open High Low Close   Volume Adjusted  Symbol
    2019-03-11 8.61  8.8 5.9  8.54 12245200     8.54    TTNP

    [[2]]
               Open High  Low Close   Volume Adjusted  Symbol
    2019-03-08 1.75  2.9 1.43  1.54 21725300     1.54    AVCO

    [[3]]
               Open High  Low Close   Volume Adjusted  Symbol
    2019-02-22 2.78 4.54 2.72   3.3 68893400      3.3    CCCL

这是我想出的,甚至还没有结束:

my_OHLCV_data$name <- symbols_names
print(my_OHLCV_data)
          [[1]]
                     Open High Low Close   Volume Adjusted
          2019-03-11 8.61  8.8 5.9  8.54 12245200     8.54

          [[2]]
                     Open High  Low Close   Volume Adjusted
          2019-03-08 1.75  2.9 1.43  1.54 21725300     1.54

          [[3]]
                     Open High  Low Close   Volume Adjusted
          2019-02-22 2.78 4.54 2.72   3.3 68893400      3.3

          $name 
          [1] "TTNP" "AVCO" "CCCL"

1 个答案:

答案 0 :(得分:2)

可能Map应该这样做

Map(cbind, my_OHLCV_data, Symbol = symbols_names)

或使用purrr::map2

purrr::map2(my_OHLCV_data, symbols_names,~cbind(.x, Symbol = .y))