[問題] 函數輸入 自動命名

作者: laputaca (離歌笑)   2016-04-16 16:31:08
想請問各位大大
如果寫一個函數讓他可以自動命名
舉個例子
k <- c(1:3)
function(k)
{
?? <- k[1]+1
?? <- k[2]+2
?? <- k[3]+3
}
如何才有辦法讓??的部分
可以是自動命名成
k1 <- k[1]+1
k2 <- k[2]+2
k3 <- k[3]+3
也就是說如果我輸入的是apple
他就是自動定義三個數值是
apple1, apple2, apple3
我有查過之前的文章
似乎有提到 甚麼 assign(paste0("k",i),value)
不過實在是不太懂
有大大能指點一下嗎?
感謝
作者: andrew43 (討厭有好心推文後刪文者)   2016-04-16 17:26:00
用eval硬幹,會改用list。我會選後者。
作者: laputaca (離歌笑)   2016-04-16 20:02:00
改用list是?不太懂
作者: cywhale (cywhale)   2016-04-16 21:44:00
assign(paste0("apple",i),k[i]+i)
作者: laputaca (離歌笑)   2016-04-16 21:45:00
感恩 我嘗試看看只是paste0("??") ?的地方如何靠function輸入的不同而改變? 這樣感覺還是只能手動一個一個輸入?
作者: andrew43 (討厭有好心推文後刪文者)   2016-04-16 22:49:00
a <- list(); a[[1]] <- 1; a[[2]] <- 12; print(a)推assign
作者: carl090105 (Jing)   2016-04-16 22:51:00
function(k, varName){ paste0(varName,I) ... }
作者: celestialgod (天)   2016-04-16 22:52:00
我也覺得善用list會是比較好的方式當你遇到要回圈的時候,a1, a2, a3這樣命名又要用eval了... 就是搞死自己而已XD
作者: laputaca (離歌笑)   2016-04-16 23:12:00
的確今晚就是一直在搞瘋自己==
作者: memphis (讓你喜歡這世界~)   2016-04-16 23:24:00
eval 寫起來很醜... 不知道有沒有好辦法

Links booklink

Contact Us: admin [ a t ] ucptt.com