作者laputaca (離歌笑)
看板R_Language
標題[問題] 函數輸入 自動命名
時間Sat Apr 16 16:31:08 2016
想請問各位大大
如果寫一個函數讓他可以自動命名
舉個例子
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)
不過實在是不太懂
有大大能指點一下嗎?
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.233.176.210
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1460795472.A.A79.html
1F:→ andrew43: 用eval硬幹,會改用list。我會選後者。 04/16 17:26
2F:→ laputaca: 改用list是?不太懂 04/16 20:02
3F:→ cywhale: assign(paste0("apple",i),k[i]+i) 04/16 21:44
4F:→ laputaca: 感恩 我嘗試看看 04/16 21:45
5F:→ laputaca: 只是paste0("??") ?的地方如何靠function輸入的不同而 04/16 21:47
6F:→ laputaca: 改變? 這樣感覺還是只能手動一個一個輸入? 04/16 21:47
7F:→ andrew43: a <- list(); a[[1]] <- 1; a[[2]] <- 12; print(a) 04/16 22:49
8F:→ andrew43: 推assign 04/16 22:50
9F:推 carl090105: function(k, varName){ paste0(varName, 04/16 22:51
10F:→ carl090105: I) ... } 04/16 22:51
11F:→ celestialgod: 我也覺得善用list會是比較好的方式 04/16 22:52
12F:→ celestialgod: 當你遇到要回圈的時候,a1, a2, a3這樣命名又要 04/16 22:52
13F:→ celestialgod: 用eval了... 就是搞死自己而已XD 04/16 22:53
14F:→ laputaca: 的確今晚就是一直在搞瘋自己== 04/16 23:12
15F:推 memphis: eval 寫起來很醜... 不知道有沒有好辦法 04/16 23:24