我创建了一个处理部分数据的函数,如下所示:
a <- "old"
test <- function (x) {
assign(x, "new", envir = .GlobalEnv)
}
test(a)
但是我看不出从“旧”到“新”的变化,我想这是一些“全局变量”,有什么建议吗?
谢谢!
答案 0 :(得分:7)
对于assign(x,value)
,x需要是变量的名称而不是它的值,因此x应该是字符形式:assign("a","new")
,并且为了在函数中使用,请尝试:
test <- function (x)
{
assign(deparse(substitute(x)), "new", envir = .GlobalEnv)
}
在您的情况下,您将创建一个名为“old”的变量并为其指定“new”:
> old
[1] "new"
答案 1 :(得分:2)
你可以将你的功能与sapply
功能结合起来,
例如:
require (plyr)
b <- sapply (a, test)
b
old
"new"
这样你就可以将你的函数应用到a
向量的实际元素 - 正如romunov在他的回答中指出的那样。
另一个例如:
a <- c("old", "oold", "ooold", "oooold")
b <- sapply (a, test)
b
old oold ooold oooold
"new" "new" "new" "new"