使用字符串的值重命名数据框?

时间:2015-05-06 01:52:28

标签: r

有没有办法使用字符串的值重命名数据框?

我试图在[R]中编写一个函数,它接受一个值向量,对它们进行操作,并且(除其他外)使用<< - 运算符将数据帧返回到全局环境。我喜欢这个数据框的名称,以反映用于创建它的向量的名称。

理想情况下,代码看起来像这样:

my.func <- function(vector.in){

# ... Operations over vector.in ... #

data.out <- data.frame(x1 = ...)
new.name <- paste("data.out", deparse(substitute(vector.in)), sep="_")

#Change the name of data.out to the value of the string new.name
changename(data.out, new.name)

#Export the newly named object to the global environment
new.name <<- new.name

# ... More operations ... #

}

2 个答案:

答案 0 :(得分:1)

这可能不是纯编码问题的论坛。但我对这种类型的东西使用assign函数

# ... Operations over vector.in ... #
new.name <- paste("data.out", deparse(substitute(vector.in)), sep="_")
assign(new.name,data.frame(x1 = ...))
ls() #you should see new.name
which(ls()==new.name) #this will return an integer

我不会把它放在一个函数中,因为赋值只能在该函数的环境中完成。无论如何,我确信有更正式的方法,但这对我很有用

答案 1 :(得分:1)

最好避免使用synchronized运算符及其兄弟,但如果你必须:

<<-

myfun <- function(objname){assign(objname,3L,envir=.GlobalEnv)} 分配给传递名称的对象。例如,

3