我有一个名为returns
的数据框,其中包含不同的列,例如simple
。我通常通过returns$simple
访问它。现在我需要将这些列传递给函数。我尝试了很多我在电路板上找到的东西(as.formula
,parse
,paste
等等),但没有一个有效。
test = function(x)
{
returns$x
}
test(simple)
答案 0 :(得分:1)
您可以使用括号表示法访问列。这是你如何做到的:
test = function(x)
{
returns[,x]
}
test("simple")
或简单地(不使用功能):
returns[, column_name]
答案 1 :(得分:0)
试试这个
returns[,x] # a
或获取列ID,使用哪个。
which(names(returns)==x) # b
另一个想法是使用grep
grep("^x$", colnames(returns)) # c
grep("^x$", names(returns)) # d
答案 2 :(得分:0)
您可以根据列名使用[[
列中的值。如果您在调用该函数时不想引用列的名称,则必须使用deparse
和substitute
。
test <- function(x)
{
xc <- deparse(substitute(x))
returns[[xc]]
}
test(simple)