R - 使用公式变量计算的数据框中的新列

时间:2014-01-14 18:20:00

标签: r dataframe

我想为变量分配一个公式,然后获取包含公式中变量的数据框,并使用结果创建一个新列。我认为我可以使用的功能是model.frame但我不确定。知道我怎么能这样做吗?

names(mydata) 
[1] "STATION_NAME" "LATITUDE"     "LONGITUDE"    "DATE"         "SNOW"         
[6] "TMAX"         "TMIN"         "PRCP"

varForm <- "(TMIN+TMAX)/2"
calcVect <- model.frame(varForm, data = mydata) Error in eval(expr, envir, enclos) : object 'TMIN' not found
mydata$calcField <- calcVect Error: object 'calcVect' not found

mydata和varForm都是我正在处理的用户定义函数的参数。这不仅仅是直接计算该领域的原因。谢谢!

1 个答案:

答案 0 :(得分:0)

您好我认为您可以使用within

执行此操作
eq <- "varForm = (TMIN+TMAX)/2"

mydata <- within(mydata, eval(parse(text = eq)))