[問題] 來問一個s plus的function基礎問題
#
a
function(in.x)
{
double.it.and.add.y <- function(x)
{
2 * x + y # Function hopes to find "y"
}
y <- 3 # Here it is
double.it.and.add.y(in.x) # But will it work? Noooooo.
}
a (3)
**************************************************************
應該是跑不出來a(3) 因為會出現error
Problem in double.it.and.add.y(in.x): Object "y" not found
Use traceback() to see the call stack
提示為 應該要改寫成以下兩行
y <- 3
assign ("y", y, frame=1)
**************************************************************
以下是我的問題
1.
assign("y",y,frame=1)跟
y<-3
誰應該在前面?
我把y<-3放在前面 假設我沒有初始值 是不是給NULL之類的? y<-NULL 以備需求?
1.function(in.x)那個in.x是甚麼意思? 如果處在不同的frame即便是兩個function(x)
不是也不應該造成困擾嗎? 還是in.x有其他用意而非只是x替代品?
2.a
function.....
這樣就是宣告a為函數(in.x)的方法嗎?
a<-function{} 呢? 差別在哪?
3.這個問題應該有點蠢
如果有一頁code 就直接 function(a,c,f,g){
.........
}
是否我要使用此function時要先給它一個名字
ex:temp<-function(a,c,f,g){.....} (複製貼上完整的code)
跑一次
還是有甚麼方法可以直接使用沒有名字的function?
我跑過一個層層{} 組成的function 用a (隔一行) function(){} 跟a<-funciton(){}
都可以跑出來 但是兩個差了一個output (就是ㄧ個可以跑出兩個output 一個只有一個)
所以我猜想兩個是否應該不一樣 不過因為我才疏學淺 對functions的理解還沒到位
就上來請專業的指點看看 感謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 174.101.220.112
推
03/02 12:59, , 1F
03/02 12:59, 1F
→
03/02 13:00, , 2F
03/02 13:00, 2F
→
03/02 13:02, , 3F
03/02 13:02, 3F
→
03/02 13:03, , 4F
03/02 13:03, 4F
→
03/02 13:03, , 5F
03/02 13:03, 5F
推
03/02 13:08, , 6F
03/02 13:08, 6F
感恩 請再追問 因為網頁上有載明說
要改寫成 y<-3
assign("y",y,frame=1)
(卻沒有寫要改寫在哪裡 改寫成怎樣)
我的作法是把第二個function改成 function(x,y)然後 將上面那兩行放入第二個{}中
這樣也可以跑得出東西來 請問這樣跟assign("y",3,frame=1)的作用是ㄧ樣的嗎?
再次感謝~
→
03/02 14:12, , 7F
03/02 14:12, 7F
→
03/02 14:14, , 8F
03/02 14:14, 8F
感謝~~
※ 編輯: cawaiilulu 來自: 174.101.220.112 (03/02 16:10)