我有一个空的数据框,其名称是由assign()函数创建的。

x <- "Sale"
y <- "2015"
col_names <- c("Q1","Q2","Q3")
assign(paste0(x,y), data.frame(matrix(nrow = 0, ncol = length(col_names))))


x,y和col_names的内容是动态的。
我应该如何为数据框分配col_names:“ paste0(x,y)”?

assign(colnames(paste0(x,y)),col_names)


我已经尝试过了,但是徒劳无功。
有什么办法解决这个问题?
非常感谢!

最佳答案

您遇到的困难(如何在以后的代码中引用使用动态生成的名称创建的对象)恰恰是assign是个坏主意的原因。您的问题实际上是由您想要使用assign引起的。

将数据框放在具有非动态变量名称的列表中,并使用“动态”元素设置列表中该元素的名称:

a <- list(setNames(data.frame(matrix(nrow = 0, ncol = length(col_names))),col_names))
names(a) <- paste0(x,y)

> a
$Sale2015
[1] Q1 Q2 Q3
<0 rows> (or 0-length row.names)

关于r - 使用assign()函数将列名称分配到R中的空数据框中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32909398/

10-12 19:55