我創建了一個功能,用於處理我的一些數據,如:全局變量
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