這是一個後續行動這個問題我在前面如何賦值給名稱的矢量貼:R: How do I concisely assign names to vector parameter components?如何獲得保留我賦值的函數? (R)
我想賦值給名稱的載體,我需要做到這一點下面代碼中的函數形式的多個不同的函數。我不想將代碼插入到每個函數中,而是希望在下面編寫一個形式爲function1的子例程,並在每個函數中調用它。不幸的是,當我調用它時,名稱賦值保留在function1中,並且不能在「return(adam + ...)」部分中使用。我懷疑這是如何指定分配函數的環境,但我不知道如何解決它(我不想全局分配名稱)。誰能幫忙?
粗糙的代碼我試圖使用低於:
function1 <- function(vector, names){
for (i in 1:length(vector){
assign(names[i], vector[,i], envir = environment())
}
}
function2 <- function(vector){
names1 <- c("adam", "becky", "charlie",...)
function1(vector,names1)
return(adam + becky^2 - 2*charlie*david +...)
}
我會避免使用'assign'和全局變量/環境headeach。使用一個「命名向量」/列表,在其中設置所有變量。 – agstudy 2014-09-10 15:42:03
您需要研究函數式編程和R的概念。你讓這些事情比自己所需要的更加困難。 – Roland 2014-09-10 15:51:22
+1 Roland。閱讀本文,這基本上是R的手冊http://www.burns-stat.com/pages/Tutor/R_inferno.pdf – hedgedandlevered 2014-09-10 15:53:30