我有两个数据框:df
和place1
。它们有一个公共变量Date
。 df
有一个变量Sites
,其中包含各种地名,包括place1
。
我正在构建以下功能:
f <- function(site) {
merge(subset(df1, Location == deparse(substitute(site))), site, by = 'Date')
}
参数site
将采用类似格式为place1
的数据框(例如place2
,place3
等。)
运行
merge(subset(df1, Location == deparse(substitute(place1))), place1, by = 'Date')
很简单,按预期执行。
但是运行f(place1)
会导致0行数据帧。我相信我已将问题缩小到deparse(substitute(place))
部分,但无法弄清楚它有什么问题。奇怪的是,将替代函数f1
定义为
f1 <- function(site){
deparse(substitute(site))
}
并运行f1(place1)
生成
[1] "place1"
正如所料。
非常感谢任何和所有帮助!