作者muscidae (异羽)
看板R_Language
标题[问题] 如何由组合後的字串导向变数名称?
时间Wed Oct 21 10:49:56 2020
[问题类型]:
程式谘询(我想用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://webptt.com/cn.aspx?n=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
1F:推 locka: eval(parse(text=''xy")) 10/21 10:58
2F:推 andrew43: 可用 get() 10/21 11:01
3F:→ cywhale: 是要get? xy=5; get(paste0("x","y")) 10/21 11:01
4F:→ muscidae: 目前试过前面几个方法都可以成功把值读出,但不能赋值 10/21 11:03
※ 编辑: muscidae (140.120.200.94 台湾), 10/21/2020 11:06:39
5F:→ cywhale: 用assign 10/21 11:09
6F:→ muscidae: assign 成功了,谢谢大家 10/21 11:39
7F:→ locka: 可以分享一下你assign怎麽写的吗 谢谢~ 10/21 12:52
8F:→ Gjerry: 最简单的写法是 assign(x, value) ,可以看assign说明 10/21 20:48
9F:→ muscidae: assign(paste0("x","y"),200) 10/22 09:53
10F:→ locka: 感谢原po,我有查过help,问题是assign(eval(parse(text="x 10/22 10:38
11F:→ locka: y")),150)是不行的,error也看不出怎麽修改,才请教原po(原 10/22 10:38
12F:→ locka: 来直接paste即可) 10/22 10:38