【发布时间】:2016-09-28 08:35:05
【问题描述】:
我正在尝试在多个数据帧上重命名变量,但分配不起作用。这是我正在尝试的代码
assign(colnames(eval(as.name(DataFrameX)))[[3]], "<- NewName")
# The idea is, go through every dataset, and change the name of column 3 to
# "NewName" in all of them
这不会返回任何错误(我能想到的所有其他版本都返回了某种错误),但它也不会更改变量名。
我正在使用循环来创建多个数据框和每个变量中的不同变量,现在我需要重命名其中一些变量,以便稍后可以将数据框合并为一个。一切正常,除了重命名。如果我在使用colnames(DF)[[3]] <- "NewName" 的常规调用中为自己输入数据框和变量的名称,但不知何故,当我尝试使用 assign 以便它在循环中完成时,它什么也不做。
【问题讨论】:
-
您有
list或data frame吗?或者你有几个data frame的变量的class是什么? -
它们不在列表中,也不在任何其他变量下。它们都是独立的、独立的数据框(我已经看到,显然最好的方法是使用数据框列表,但如果没有它们,我将不胜感激)
-
感谢所有答案,但如果有人能告诉我为什么 assign 调用不起作用,那也很好
-
阅读
help("assign")。目前尚不清楚您对代码的推理是什么以及为什么您认为它应该起作用。此外,出于充分的理由,建议使用列表。不要让你的编码生活变得比需要的更难。