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

看板R_Language作者 (離歌笑)時間8年前 (2016/04/16 16:31), 編輯推噓2(2013)
留言15則, 6人參與, 最新討論串1/2 (看更多)
想請問各位大大 如果寫一個函數讓他可以自動命名 舉個例子 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://www.ptt.cc/bbs/R_Language/M.1460795472.A.A79.html

04/16 17:26, , 1F
用eval硬幹,會改用list。我會選後者。
04/16 17:26, 1F

04/16 20:02, , 2F
改用list是?不太懂
04/16 20:02, 2F

04/16 21:44, , 3F
assign(paste0("apple",i),k[i]+i)
04/16 21:44, 3F

04/16 21:45, , 4F
感恩 我嘗試看看
04/16 21:45, 4F

04/16 21:47, , 5F
只是paste0("??") ?的地方如何靠function輸入的不同而
04/16 21:47, 5F

04/16 21:47, , 6F
改變? 這樣感覺還是只能手動一個一個輸入?
04/16 21:47, 6F

04/16 22:49, , 7F
a <- list(); a[[1]] <- 1; a[[2]] <- 12; print(a)
04/16 22:49, 7F

04/16 22:50, , 8F
推assign
04/16 22:50, 8F

04/16 22:51, , 9F
function(k, varName){ paste0(varName,
04/16 22:51, 9F

04/16 22:51, , 10F
I) ... }
04/16 22:51, 10F

04/16 22:52, , 11F
我也覺得善用list會是比較好的方式
04/16 22:52, 11F

04/16 22:52, , 12F
當你遇到要回圈的時候,a1, a2, a3這樣命名又要
04/16 22:52, 12F

04/16 22:53, , 13F
用eval了... 就是搞死自己而已XD
04/16 22:53, 13F

04/16 23:12, , 14F
的確今晚就是一直在搞瘋自己==
04/16 23:12, 14F

04/16 23:24, , 15F
eval 寫起來很醜... 不知道有沒有好辦法
04/16 23:24, 15F
文章代碼(AID): #1N4VXGfv (R_Language)
文章代碼(AID): #1N4VXGfv (R_Language)