在R中动态命名变量

时间:2017-02-27 15:52:46

标签: r

我正在尝试动态更改循环中变量的类型。现在我有以下代码行

assign(paste("contractrenewal",i, 
             "[,\"SContract Product ID from Object\"]",sep = ""), 
       as.character(paste("contractrenewal",i, 
                          "[,\"SContract Product ID from Object\"]", sep = "")))

在这里,我从1到18运行,我有18个数据帧如下(contractrenewal1contractrenewal2,...,contractrenewal18)。我在每个数据框名称SContract Product ID from Object中都有一个类型为int的列,我希望它是字符类型。

上面的代码执行正常,但没有实现我想要的。我环顾四周,却找不到这样的东西

1 个答案:

答案 0 :(得分:2)

快速(也许是肮脏)修复:

关注Gregor's link并将所有数据框放入列表中。

(为了重现你的例子,我制作了自己的清单:)

cr.list <- list()
for (i in 1:18) {
  cr.list[[i]] <- data.frame("SContract Product ID from Object" = 
                               as.integer(c(123, 412))) 
}

然后你可以遍历列表:

for (i in 1:18) {
  cr.list[[i]][, "SContract.Product.ID.from.Object"] <- 
    as.character(cr.list[[i]][, "SContract.Product.ID.from.Object"])
}

现在您可以使用character看到您的变量为str(cr.list)