在R中,如何将参数视为变量,其中该变量是其内容的名称?

时间:2016-08-30 20:40:16

标签: r

我在写我想做的事情时遇到了麻烦,所以请耐心等待。

我试图从列表中提取信息并使用data.table函数。如果我只有一个数据集,那么很容易使用元素的名称,如下所示:

x = myList$first_val
y = myList$second_val

但是,我想编写一个更通用的函数。问题是R将变量本身视为要提取的项的名称。这是一个例子:

myFun <- function(data, independent_var, dependent_var)
{
  formula = paste(independent_var, "~", dependent_var)
  regression = lm(formula, data=data)

  # problem on the next two lines
  x = data$independent_var
  y = data$dependent_var

  plot(x,y)
  return(regression)
}

数据可能如下所示:

Market_Price   Sales_Price
10             12
11             11
14             19

示例函数调用可能如下所示:

my_reg = myFun(prices, "Market_Value", "Sales_Price")

问题是R认为变量而不是它们的内容是数据中列的名称。同样,我在使用data.frame时遇到同样的问题。

myFun2 <- function(data, regression, variable, value, conf.level)
{
  # how the special case works
  # new = data.frame("Market_Price" = value)

  # how I want it to work
  new = data.frame(variable = value)

  CI = predict(regression, newdata = new, interval="confidence",level=conf.level)
  return(CI)
}

0 个答案:

没有答案