[問題] 如何由組合後的字串導向變數名稱?

看板R_Language作者 (異羽)時間3年前 (2020/10/21 10:49), 3年前編輯推噓2(2010)
留言12則, 5人參與, 3年前最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 在 Excel 裡有一個 INDIRECT() 函數,可以以字串(ex "$B$1"),回傳該位置的數值 想請問大家在 R 裡有沒有類似的功能。我目前需要使用拼接後的字串導向與那個字串內容 同名的數值。 [程式範例]: > xy <- 100 > paste0("x","y") [1] xy ## xxx() 是我想請教的功能 > xxx(paste0("x","y")) [1] 100 ## 實際上會使用在 phyloseq package 裡的 phyloseq 格式 ## 我想應該沒辦法把值丟到 data.frame 裡再由欄列名指向 ## 補充: 除了讀出來,我更需要把值丟到那個名字裡 > eval(parse(text="xy")) <- 200 Error in eval(parse(text = "xy")) <- 200 : 賦值目標擴充到非語言的物件 ## get 也不能成功 [環境敘述]: R 4.0.2 [關鍵字]: INDIRECT(excel) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.120.200.94 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1603248598.A.38C.html ※ 編輯: muscidae (140.120.200.94 臺灣), 10/21/2020 10:50:43 ※ 編輯: muscidae (140.120.200.94 臺灣), 10/21/2020 10:59:22

10/21 10:58, 3年前 , 1F
eval(parse(text=''xy"))
10/21 10:58, 1F

10/21 11:01, 3年前 , 2F
可用 get()
10/21 11:01, 2F

10/21 11:01, 3年前 , 3F
是要get? xy=5; get(paste0("x","y"))
10/21 11:01, 3F

10/21 11:03, 3年前 , 4F
目前試過前面幾個方法都可以成功把值讀出,但不能賦值
10/21 11:03, 4F
※ 編輯: muscidae (140.120.200.94 臺灣), 10/21/2020 11:06:39

10/21 11:09, 3年前 , 5F
用assign
10/21 11:09, 5F

10/21 11:39, 3年前 , 6F
assign 成功了,謝謝大家
10/21 11:39, 6F

10/21 12:52, 3年前 , 7F
可以分享一下你assign怎麼寫的嗎 謝謝~
10/21 12:52, 7F

10/21 20:48, 3年前 , 8F
最簡單的寫法是 assign(x, value) ,可以看assign說明
10/21 20:48, 8F

10/22 09:53, 3年前 , 9F
assign(paste0("x","y"),200)
10/22 09:53, 9F

10/22 10:38, 3年前 , 10F
感謝原po,我有查過help,問題是assign(eval(parse(text="x
10/22 10:38, 10F

10/22 10:38, 3年前 , 11F
y")),150)是不行的,error也看不出怎麼修改,才請教原po(原
10/22 10:38, 11F

10/22 10:38, 3年前 , 12F
來直接paste即可)
10/22 10:38, 12F
文章代碼(AID): #1VZw7MEC (R_Language)
文章代碼(AID): #1VZw7MEC (R_Language)