Re: [程式] R 呼叫變數 動態變數
動態變數的指定 常用的方法是用list
根據之前的文章
可以有一些有趣的應用
以下提供幾個範例
####
for (i in 1:10) {
eval(parse(text = paste("x",i, " <- ", i, sep="")))
}
####
A <- "I am A"
B <- "I am B"
for(i in c("A", "B")){
eval(parse(text = paste("call",i, " <- ", i, sep="")))
}
####
C <- "I am C"
D <- "I am D"
for(i in c("C", "D")){
assign(paste("call",i, sep=""), i)
}
Note: assign() 與 eval(parse()) 的效果並不相同
※ 引述《gsuper (統計的巴比倫塔)》之銘言:
: 標題: [程式] R呼叫變數
: 時間: Wed Sep 8 17:35:28 2010
:
:
:
:
: 請問一下
:
: 如果我有個變數名如下
:
: > a <- 1
: > b <- 2
: > ls()
: [1] "a" , "b"
:
:
: 現在我想把 a 和 b 變成 list
: 但因為我的 "a" 和 "b" 是動態產生的
: 所以我不能寫死成 huge <- list(a,b)
:
: 請問有什麼 function 可以透過字串來呼叫變數
: 比方說我輸入 function("a")
: 就能叫出 1 這個數字 ?
:
:
:
: --
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 140.113.239.247
: → ablazekandyh:huge[[1]]? 09/08 20:28
: 推 Wush978:eval(parse(text="a")) 09/08 21:01
: → Wush978:by 版友clickhere某次推文 09/08 21:01
: → Wush978:不知道這是不是你要的 09/08 21:02
:
: Yes!
:
: That`s exactly what I want.
:
: Thank you!
: ※ 編輯: gsuper 來自: 140.113.239.247 (09/08 21:11)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.73.18
推
06/02 22:50, , 1F
06/02 22:50, 1F
→
06/03 13:12, , 2F
06/03 13:12, 2F
→
06/03 14:49, , 3F
06/03 14:49, 3F
→
06/03 14:54, , 4F
06/03 14:54, 4F
※ 編輯: memphis 來自: 140.109.73.18 (06/03 14:58)
→
06/03 15:04, , 5F
06/03 15:04, 5F
→
06/03 15:04, , 6F
06/03 15:04, 6F
→
06/03 15:04, , 7F
06/03 15:04, 7F
→
06/03 15:08, , 8F
06/03 15:08, 8F
→
06/03 15:09, , 9F
06/03 15:09, 9F
→
06/05 08:28, , 10F
06/05 08:28, 10F
→
06/05 08:29, , 11F
06/05 08:29, 11F
→
06/05 08:30, , 12F
06/05 08:30, 12F
→
06/05 08:31, , 13F
06/05 08:31, 13F
→
06/05 08:32, , 14F
06/05 08:32, 14F
→
06/05 10:32, , 15F
06/05 10:32, 15F
→
06/06 08:59, , 16F
06/06 08:59, 16F