我创建了一个功能,用于处理我的一些数据,如:全局变量
a <- "old"
test <- function (x) {
assign(x, "new", envir = .GlobalEnv)
}
test(a)
但我不能看到“老”到“新”,我想这个变化是一些“全局变量”,有没有什么建议?
谢谢!
我创建了一个功能,用于处理我的一些数据,如:全局变量
a <- "old"
test <- function (x) {
assign(x, "new", envir = .GlobalEnv)
}
test(a)
但我不能看到“老”到“新”,我想这个变化是一些“全局变量”,有没有什么建议?
谢谢!
为assign(x,value)
,X必须是一个变量而不是它的值的名称,所以x应以字体形式:assign("a","new")
,并且为了在函数中使用尝试:
test <- function (x)
{
assign(deparse(substitute(x)), "new", envir = .GlobalEnv)
}
你的情况
,你会创造一个名为 “老” 的变量,并将 “新” 来了:
> old
[1] "new"
或只是一个测试(“a”)'与原始代码。 – Marek 2010-09-05 15:17:40
,你可以用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"
首先,不要这样做 - 在具有功能的全球环境中搞乱几乎总是一个坏主意,导致随机覆盖,很难追踪错误和整体混乱。 – mbq 2010-09-04 08:46:22