r - 将 data.frame 变量名称传递给 r 中的熔化和类型转换

标签 r user-defined-functions reshape2

我查看了几篇帖子以获得解决我的问题的帮助,但没有成功实现解决方案。我的问题很简单,我想将变量名从 Reshape 包传递给强制转换函数。变量“时间”是我正在创建的用户定义函数中的一个参数。我想通过强制转换函数传递这个参数。

我经常使用的伪数据:

dates <-seq(as.Date("2010-01-01"), by = "day", length.out= 1080)
myData <- expand.grid( Day, Hour)
names(myData) <- c("Date","Hour")

myData$Adspend <- apply(myData, 1, function(x) foo(x[2], x[1]))
myData$Date <-dates

myData$Demand <-(rnorm(1,mean = 0, sd=1)+.75*myData$Adspend)

myData$Hour<-as.factor(myData$Hour)

这是我正在测试的部分用户定义函数:

AddLag <- function(DF,Date,Time,RESP,AD,LAG=9) {
    Lags<-24-LAG
    ADDATE<-DF[,c(1,2,4)]
    RESPDATE<-cbind(DF[[Date]],DF[[Time]],DF[[RESP]])
    HOURAD<-melt(ADDATE, id=c(Date,Time), measured =c(AD))
    HOURAD<- cast(HOURAD,as.formula(paste0(" ...~"),Time))

    return(HOURAD)
    }

我遇到的错误。我尝试过各种粘贴配置,我怀疑这是一个我无法弄清楚的简单问题:

Bo<-AddLag(myData,"Date","Hour","Demand","Adspend")
Error in parse(text = x) : <text>:2:0: unexpected end of input
1:  ...~
   ^

最佳答案

我明白了。这是对paste0如何与as.formula函数一起工作的误解。 下面是转换函数的编写方式:

require(reshape2)
HOURAD<- dcast(HOURAD,as.formula(paste0("... ~",Time))) ## was a parenthesis error here

关于r - 将 data.frame 变量名称传递给 r 中的熔化和类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19338165/

相关文章:

r - 按行计算平均日期

javascript - 如何使用用户定义的过滤器或其他方法控制通过 CSS 模块或样式化组件自动生成的动态类名

r - 用 R 分组的条形图

r - 如何使用 ROCR 包计算 AUC

r - ggplot2 : label bar height 中的密度直方图

R Markdown,chunk选项结果="asis"时输出测试结果(htest)

sql - 是否可以在同一查询中同时使用过滤器和 View 函数?

vba - 允许在一个打开的工作簿中使用 UDF,但使其在另一工作簿中不可见/不可用/不可访问

r - 在 R : dcast in function, 中传递列名(再次!)

重构/ reshape 数据框 ( r )