首页 > 解决方案 > 根据字符串向量更改数据框的名称

问题描述

我正在从一个目录中读取几个 excel 文件,我希望读取的数据帧根据字符串向量动态命名

我有一个包含国家名称的字符串向量 cnts <- c("de", "ar", "fr")

然后我读了一个excel文件,它的路径已经存储在一个向量(文件)中 df <- read.xlsx(file[1], 1) 现在我想将df重命名为国家向量中的第一个元素,所以我这样做了 cnts[1] <- df

但这不起作用并给我一个错误

在 cnts[2] <- df 要替换的项目数不是替换长度的倍数

我希望将 df 重命名为 de 我知道问题所在,它试图将整个 df 写入位置 1 的字符串向量,但是如何动态重命名数据帧?

标签: rdataframe

解决方案


cnts[1] <- df表示您尝试将数据帧存储在长度为 1 的字符串中"de" <- df

您可以使用assign,您必须阅读为什么使用分配不好

cnts <- c("de", "ar", "fr")

df <- data.frame(a=1:5)

assign(cnts[1], df)
de

更好的做法是使用大小列表cnts并将数据框影响到列表的正确元素。


推荐阅读