【发布时间】:2020-08-30 03:11:44
【问题描述】:
我遇到了一个特定问题我有一个包含大量矩阵的数据集,这些矩阵都以V1 作为列名,基本上是 NULL。我正在尝试编写一个循环来用列表中的列名替换所有这些,但我遇到了一些问题。
为了把它分解成最简单的形式,这段代码没有像我期望的那样运行。
nameofmatrix <- paste('column_', i, sep = "")
colnames(eval(as.name(nameofmatrix))) <- c("test")
我希望这会以 column_1 的值为例,并将(在第 2 行中)替换为“test”作为列名。
我试图把它分解得更小,例如,如果我运行print(eval(as.name(nameofmatrix)),我会按预期打印对象的列/行,如果我运行print(colnames(eval(as.name(nameofmatrix))),我会得到列标题预期的NULL(因为它被设置为V1)。
我什至尝试手动输入列名,例如colnames(column_1) <- c("test),这成功地重命名了列。但是,一旦将这个变量放在文本的位置,如上所示,它的工作方式就不一样了。在使用此方法创建多个矩阵列后,我很难找到有关如何重命名多个矩阵列的解决方案。有人有什么意见或建议吗?
注意,我在尝试运行时收到的错误是
Error in eval([as.name](nameofmatrix)) <- \`vtmp\` : could not find function "eval<-"
【问题讨论】:
标签: r