看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用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
locka: eval(parse(text=''xy")) 10/21 10:58
andrew43: 可用 get() 10/21 11:01
cywhale: 是要get? xy=5; get(paste0("x","y")) 10/21 11:01
muscidae: 目前試過前面幾個方法都可以成功把值讀出,但不能賦值 10/21 11:03
※ 編輯: muscidae (140.120.200.94 臺灣), 10/21/2020 11:06:39
cywhale: 用assign 10/21 11:09
muscidae: assign 成功了,謝謝大家 10/21 11:39
locka: 可以分享一下你assign怎麼寫的嗎 謝謝~ 10/21 12:52
Gjerry: 最簡單的寫法是 assign(x, value) ,可以看assign說明 10/21 20:48
muscidae: assign(paste0("x","y"),200) 10/22 09:53
locka: 感謝原po,我有查過help,問題是assign(eval(parse(text="x 10/22 10:38
locka: y")),150)是不行的,error也看不出怎麼修改,才請教原po(原 10/22 10:38
locka: 來直接paste即可) 10/22 10:38