【发布时间】:2020-10-21 09:38:10
【问题描述】:
我是 R 的新手,并试图理解函数的基本语法。
在下面的f(x1)和g(x,1)这两个函数中,我想生成y=2。只有前者有效。
我熟悉 str_interp() 和 paste() 函数,但它们似乎只在字符串上下文中工作,而不是在变量上下文中工作。例如,prefixnum <- str_interp("${prefix}${num}") 不能解决问题。
我的动机是我想通过指定变量名称的组件来调用函数。我的背景是在 Stata 中,占位符用反引号和勾号指定(例如,`prefix'`num')。咨询了几个relevantresources,都没有用。
顺便说一句,我已经阅读了关于变量是否应该以其数据框为前缀的不同想法(例如,df$var)。是否遵循这个约定背后的逻辑是什么?为什么f(df$x1)可以工作,而写f(x1)和修改函数为y <- df$var*2不行?
df <- data.frame(x1=1)
f <- function(var) {
y <- var*2
y
}
f(df$x1)
g <- function(prefix,num) {
y <- df$prefixnum*2 #where "prefixnum" is a placeholder of some sort
y
}
g(x,1)
【问题讨论】: