R 需要在子应用中访问父应用中的变量,而无需全局作用域

R 需要在子应用中访问父应用中的变量,而无需全局作用域,r,dataframe,R,Dataframe,让我再试一次,我将省略确切的数据/示例,只是简单介绍一下我需要完成的工作 我需要在data.frame的行上应用一个函数,这很简单。然后我需要使用传递给它的data.frame来派生该函数中的一些变量。最后,我想在data.frame的子集上应用一个新函数,并在新函数中使用派生变量 有人能告诉我做这件事的最佳实践方法,而不是全局地确定每个变量的范围(var1,var2)吗 cpt这个愚蠢的例子对我很有用,似乎能说明你在追求什么。我们使用var1索引到apply函数中使用的data.frame的列

让我再试一次,我将省略确切的数据/示例,只是简单介绍一下我需要完成的工作

我需要在data.frame的行上应用一个函数,这很简单。然后我需要使用传递给它的data.frame来派生该函数中的一些变量。最后,我想在data.frame的子集上应用一个新函数,并在新函数中使用派生变量

有人能告诉我做这件事的最佳实践方法,而不是全局地确定每个变量的范围(var1,var2)吗


cpt这个愚蠢的例子对我很有用,似乎能说明你在追求什么。我们使用
var1
索引到apply函数中使用的data.frame的列中
var2
只是传递给它的data.frame的第一列的标准偏差。我猜你的真实例子有点有用

cpt <- data.frame(a = rnorm(5), b = rnorm(5), c = rnorm(5))
another.data.frame <- data.frame(d = rnorm(5), e = rnorm(5), f = rnorm(5))

query.db <- function(dat, outer.dat) {
  var1 <- sample(1:nrow(dat), sample(1:nrow(dat), 1, FALSE), FALSE)
  var2 <- sd(dat[, 1])

  apply(outer.dat[var1 ,], 1, function(x) apples = x * sin(var2) / cos(var2) ^ 2)

}


query.db(another.data.frame, cpt)

cpt您设计的示例很难遵循。
var1
var2
来自哪里?它们是对
另一个.data.frame
中某些变量的计算吗?您试图从此函数返回什么?你在做什么类型的计算?数字数据?分类数据?这个问题在当前的表单中很难回答。将所有要使用的对象显式地传递给下游函数是很好的簿记。
cpt <- data.frame(a = rnorm(5), b = rnorm(5), c = rnorm(5))
another.data.frame <- data.frame(d = rnorm(5), e = rnorm(5), f = rnorm(5))

query.db <- function(dat, outer.dat) {
  var1 <- sample(1:nrow(dat), sample(1:nrow(dat), 1, FALSE), FALSE)
  var2 <- sd(dat[, 1])

  apply(outer.dat[var1 ,], 1, function(x) apples = x * sin(var2) / cos(var2) ^ 2)

}


query.db(another.data.frame, cpt)