【问题标题】:R - new column in data frame calculated with a formula variableR - 使用公式变量计算的数据框中的新列
【发布时间】:2014-01-15 02:49:37
【问题描述】:

我想将一个公式分配给一个变量,然后获取一个包含公式中变量的数据框,并用结果创建一个新列。我认为我可以使用的功能是 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 都是我正在处理的用户定义函数的参数。这就是不直接计算字段的原因。谢谢!

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    您好,我认为您可以通过 within 做到这一点

    eq <- "varForm = (TMIN+TMAX)/2"
    
    mydata <- within(mydata, eval(parse(text = eq)))
    

    【讨论】:

    • 感谢工作很棒! varForm
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 2022-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多