R:将数据帧列分配给函数内的变量

时间:2014-04-12 08:52:55

标签: r function

我希望能够暂时将data.frame的列分配给函数中的变量名。

mydata <- data.frame(a1="hello",a2=2,a3=3) 

f <- function(mydata) {
   for (i in names(mydata)) assign(i, tempdata[i])
   print(a1)
   print(a2+a3)
}

[1] "hello"
[2] 5

谢谢,我知道这是另一个奇怪的问题,但它会有所帮助。

1 个答案:

答案 0 :(得分:1)

我对发布此内容犹豫不决,但您的评论对于解释您要实现的内容并不是特别有用,而且这似乎与您问题中f函数的功能相匹配。

with函数可以让您将列名引用为变量:

with(mydata, {
  print(a1)
  print(a2 + a3)
})
# [1] hello
# Levels: hello
# [1] 5