Re: [問題] 連續變數命名、運算
# 方法一
利用一個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://www.ptt.cc/bbs/R_Language/M.1420994301.A.E98.html
推
01/12 01:37, , 1F
01/12 01:37, 1F
→
01/12 17:11, , 2F
01/12 17:11, 2F
→
01/12 23:08, , 3F
01/12 23:08, 3F
→
01/12 23:08, , 4F
01/12 23:08, 4F
→
01/12 23:45, , 5F
01/12 23:45, 5F
推
01/13 19:47, , 6F
01/13 19:47, 6F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
0
2
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章