首页 > 解决方案 > For循环重命名许多对象的列名R

问题描述

我正在寻找一种方法来使用 for 循环或 R 中的其他方法重命名多个对象的列。最终,我希望能够将每个 Stock 对象的行绑定到一个大数据框中,但由于列不同而不能名字。下面的例子:

AAPL <-
Date        AAPL.Open  AAPL.High AAPL.Low  AAPL.Close  AAPL.Volume  AAPL.Adjusted  Stock  pct_change
2020-05-14  304.51     309.79    301.53    309.54      39732300     309.54         AAPL   0.61
2020-05-15  300.35     307.90    300.21    307.71      41561200     307.71         AAPL  -0.59


GOOG <-  
Date        GOOG.Open GOOG.High  GOOG.Low  GOOG.Close  GOOG.Volume   GOOG.Adjusted  Stock  pct_change 
2020-05-14  1335.02   1357.420   1323.910  1356.13     1603100       1356.13        GOOG   0.50
2020-05-15  1350.00   1374.480   1339.000  1373.19     1705700       1373.19        GOOG   1.26

对于这个示例,我有 2 个对象(AAPL 和 GOOG),但实际上我会使用更多对象。我可以创建一个for循环来遍历每个对象,并将每个对象的第二列重命名为“打开”,将第三列重命名为“高”,将第四列重命名为“低”,......等等,然后我可以绑定所有这些对象在一起?

我已经有一个名为“Stock”的列,所以我不需要列名的 Ticker 部分。

标签: rfor-loopquantmod

解决方案


如果您可以保证这些列的顺序,则应该这样做:

for(df in list(AAPL, GOOG))
  colnames(df) <- c("Date", "Open", "High", "Low", "Close", "Volume", "Adjusted", "Stock", "pct_change")

推荐阅读