[问题] 函数输入 自动命名

楼主: 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