2014-04-12 115 views
0

我希望能够将data.frame的列临时分配给函数中的变量名称。R:将数据帧列分配给函数内的变量

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 

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

+0

也许如果你解释你试图实现的,它可能是更容易帮助你的解决方案。 – A5C1D2H2I1M1N2O1R2T1

+0

我正在努力将通用数据任务重新映射为更加用户友好的语言。 – fsmart

回答

1

我不愿意发表这个,但是你的评论并没有特别有助于解释你想达到的目标,而且这似乎与你的问题中的f函数的功能相匹配。

with功能会让你指的列名,好像他们是变量:

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