Re: [問題] 連續變數命名、運算

看板R_Language作者 (拒看低質媒體)時間10年前 (2015/01/12 00:38), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串2/2 (看更多)
# 方法一 利用一個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
感謝Wush大大。globalenv()[[name]] 很實用!
01/12 01:37, 1F

01/12 17:11, , 2F
R的「環境」我一直掌握不好。其它語言也有這東西嗎?
01/12 17:11, 2F

01/12 23:08, , 3F
environment有點小複雜,有興趣的話我可以hangout上花
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
文章代碼(AID): #1KigRzwO (R_Language)
文章代碼(AID): #1KigRzwO (R_Language)