【发布时间】:2020-06-03 00:48:10
【问题描述】:
我有以下问题:
对于不同的变量集,我需要一遍又一遍地使用相同的语法。 它们都具有相同的“核心”名称(例如:variable_1)和不同的后缀,例如:
variable_1_a, variable_1_b, variable_1_c, variable_1_d, variable_1_e, ...
由于语法很大,我需要为(示例)变量 _2、_3、_4、_5 等运行它,我想知道是否有某种形式的占位符表达式可以定义我每次都想用它运行它的“核心”名称,而不是复制粘贴整个语法并用下一个核心名称替换每个“variable_1”。
例如,将核心名称保存为 !XY! (“!”只是表示它是非典型的)并且在整个语法中带有该术语,并附有“_a”,“_b”,“_c”
!XY!_a, !XY!_b, !XY!_c, !XY!_d, !XY!_e, ...
我尝试将核心名称保存在一个名为 XY 的元素中并将其粘贴到结尾:
XY <- "variable_1"
paste0(as.character(XY),"_a")
"variable_1_a"
或
as.symbol(paste0(as.character(XY),"_a"))
variable_1_a
当然,这看起来很长,但如果它也可以用作表达式,我可以像变量一样使用它,我会接受:例如读取或写入它会导致错误。
as.symbol(paste0(as.character(XY),"_a")) <- "test"
Error in as.symbol(paste0(as.character(XY),"_a")) <- "test" :
could not find function "as.symbol<-"
如果有机会编写一种语法来适应所有程序,那将是一个巨大的节省时间! 非常感谢您的想法!
【问题讨论】:
-
不确定我是否理解你的目标,但是 paste0 是矢量化的,所以如果你想要一个字符向量,你可以使用 paste0("variable_1_", letters)?
-
这个想法是每次只交换/替换变量名的一部分,同时保留结尾/后缀 - 而不是所有的复制粘贴,我一直在寻找一个类似的解决方案,每次只需一个更改- “字母”是变量中必须保持不变的部分,每次只有第一部分必须更改 - 不幸的是 paste0 只是创建了正确的表达式,但我不能像纯文本一样使用它- 即像一个完整的变量名
标签: r syntax workflow substitution