[问题类型]:
程式咨询(我想用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)
作者:
locka (locka)
2020-10-21 10:58:00eval(parse(text=''xy"))
作者:
andrew43 (讨厌有好心推文后删文者)
2020-10-21 11:01:00可用 get()
作者:
cywhale (cywhale)
2020-10-21 11:01:00是要get? xy=5; get(paste0("x","y"))
目前试过前面几个方法都可以成功把值读出,但不能赋值
作者:
cywhale (cywhale)
2020-10-21 11:09:00用assign
作者:
locka (locka)
2020-10-21 12:52:00可以分享一下你assign怎么写的吗 谢谢~
作者: Gjerry 2020-10-21 20:48:00
最简单的写法是 assign(x, value) ,可以看assign说明
assign(paste0("x","y"),200)
作者:
locka (locka)
2020-10-22 10:38:00感谢原po,我有查过help,问题是assign(eval(parse(text="xy")),150)是不行的,error也看不出怎么修改,才请教原po(原来直接paste即可)