如何在语法 gramEvol 包中生成数据帧

问题描述

我需要在 gramEvol 包中制作数据框

set.seed(123)
dt <- as.data.frame(matrix(ncol = 4,nrow = 0))
colnames(dt) <- c("pat","price","mindist","StopNext")
# make dataframe with random rows
for(i in 1:sample(5:15,1)){
  pat <- sample(c("O","H","L"),1)
  price <- sample(-5:5,size = 1)
  mindist <- sample(seq(0,0.5,by = 0.1),1) 
  StopNext <- sample(c("stop","next"),1,prob = c(0.3,0.7)) 
  res <- data.frame(pat,price,mindist,StopNext)
  dt <- rbind.data.frame(dt,res)    
}

喜欢这个

 dt
    pat price mindist StopNext
    1   H    -3     0.1     next
    2   H     5     0.4     stop
    3   H     0     0.0     next
    4   L    -1     0.2     stop
    5   O     3     0.0     next
    6   L     2     0.1     next
    7   H     3     0.5     next
 

但我不明白如何在 gramEvol 这是我得到的

library("gramEvol")
ruleDef <- list(  result = grule( data.frame(pat,StopNext) ),pat = grule("O",price = grule( -5,-4,-3,-2,-1,2,3,4,5),mindist = grule( 0.01,0.02,0.03,0.04,0.05,0.1,0.2,0.3,0.4,0.5 ),StopNext = grule("stop","next")
                  )
grammarDef <- CreateGrammar(ruleDef)



GrammarRandomExpression(grammarDef,numExpr = 3)

[[1]]
expression(data.frame("H","next"))

[[2]]
expression(data.frame("O","next"))

[[3]]
expression(data.frame("O","stop"))

但我想获得三个日期框架

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)