R语言批量修改xts转data.frame对象首列Index为Date的方法
错误原因
你代码里的xtsObjects是存储各转换后data.frame对象名称的字符串向量,直接对xtsObjects[i]调用colnames相当于对字符串修改列名,对象本身没有维度属性,因此触发报错。
正确实现代码
替换你第4步的循环代码即可:
for (i in seq_along(xtsObjects)) { # 提取实际的data.frame对象 current_df <- get(xtsObjects[i]) # 修改首列列名为Date colnames(current_df)[1] <- "Date" # 将修改后的对象赋值回原变量名 assign(xtsObjects[i], current_df) }
优化方案
你可以直接在第三步转换xts为data.frame的同时完成列名修改,减少一次循环遍历,代码如下:
for (i in seq_along(xtsObjects)) { converted_df <- fortify.zoo(get(xtsObjects[i])) colnames(converted_df)[1] <- "Date" assign(xtsObjects[i], converted_df) }
内容的提问来源于stack exchange,提问作者pdeli
相关产品推荐
相关产品推荐

