作者Wush978 (拒看低质媒体)
看板R_Language
标题Re: [问题] 连续变数命名、运算
时间Mon Jan 12 00:38:18 2015
# 方法一
利用一个list来放这些变数。
以抽象功能来说,
list很适合把字串map到R物件。
x <- list()
for(i in 1:3) {
name <- # 建立a1, a2, ...
x[[name]] <- value # 赋值
}
sum(unlist(x))
# 方法二
假设你已经用你上面写的方法设定好a1, a2, a3, ...
你可以把「环境」当list用。(但是两者还是不太一样)
retval <- 0
for(i in 1:3) {
name <- # 建立如a1, a2的字串
retval <- retval + globalenv()[[name]]
}
当然你可以继续玩apply家族
或是用get之类的函数
但是这些都是透过「环境」来利用字串存取物件。
※ 引述《ntme (one shot one kill)》之铭言:
: [问题类型]:
:
: 程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
:
: [软体熟悉度]:
: 请把以下不需要的部份删除
: 入门(写过其他程式,只是对语法不熟悉)
:
: [问题叙述]:
: 以用 for loop 产生连续的变数并命名,但不知道怎麽用
: for loop再利用产生的变数运算
: [程式范例]:
:
: #产生 a1 = 1, a2 = 2, a3 = 3
: for ( i in 1:3 ) {
: var_name <- paste("a",i, sep="")
: assign( var_name, i)
: }
: 请问如何写for loop把 a1, a2, a3加起来
:
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.161.26.39
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1420994301.A.E98.html
1F:推 ntme: 感谢Wush大大。globalenv()[[name]] 很实用! 01/12 01:37
2F:→ andrew43: R的「环境」我一直掌握不好。其它语言也有这东西吗? 01/12 17:11
3F:→ Wush978: environment有点小复杂,有兴趣的话我可以hangout上花 01/12 23:08
4F:→ Wush978: 十分钟解释 01/12 23:08
5F:→ andrew43: 谢谢。有机会的话你学学。 01/12 23:45
6F:推 e002311: 太强了 01/13 19:47