2

問題を解決するための助けを得るためにいくつかの投稿を見ましたが、解決策を実装することはできませんでした. 私の問題は単純です。変数名を Reshape パッケージからキャスト関数に渡したいのです。変数「Time」は、作成中のユーザー定義関数の引数です。この引数をキャスト関数に渡したい。

私がいつも使用する疑似データ:

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:  ...~
   ^
4

1 に答える 1

2

私はそれを考え出した。as.formula 関数で paste0 がどのように機能するかについての誤解でした。キャスト関数の書き方は次のとおりです。

require(reshape2)
HOURAD<- dcast(HOURAD,as.formula(paste0("... ~",Time))) ## was a parenthesis error here
于 2013-10-12T19:23:36.103 に答える