Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何将公式对象处理为角色对象?_R_String - Fatal编程技术网

R 如何将公式对象处理为角色对象?

R 如何将公式对象处理为角色对象?,r,string,R,String,我的问题是: formula = label ~ m1 + m2 + m2m1 + topix + sp500 + Open + High + Low + Close + Volume + psyco12 + psyco24 + closeB5 + closeB10 + closeB20 + closeB60 + William5 + William8 + William13 + William21 + William34 + RSV9 + K + D + KD + MA5 + MA

我的问题是:

formula = label ~ m1 + m2 + m2m1 + topix + sp500 + Open + High + Low +
  Close + Volume + psyco12 + psyco24 + closeB5 + closeB10 +
  closeB20 + closeB60 + William5 + William8 + William13 + William21 +
  William34 + RSV9 + K + D + KD + MA5 + MA10 + MA20 + MA60 +
  MA120 + MA240 + MA5MA20 + DI + EMA12 + EMA26 + DIF + MACD +
  OSC + change + RSI6p + RSI6m + RSI6 + RSI12p + RSI12m + RSI12 +
  RSI6RSI12 + OBV + JPYUSD + MarCap + MonthVol + MonthVal +
  GV
类(公式)是公式

我想将其转换为以下格式

c("m1","m2","m2m1","topix","sp500","Open","High","Low",
                 "Close","Volume","psyco12","psyco24","closeB5","closeB10", 
                 "closeB20","closeB60","William5","William8","William13","William21",
                 "William34","RSV9","K","D","KD","MA5","MA10","MA20","MA60",
                 "MA120","MA240","MA5MA20","DI","EMA12","EMA26","DIF","MACD",
                 "OSC","change","RSI6p","RSI6m","RSI6","RSI12p","RSI12m","RSI12", 
                 "RSI6RSI12","OBV","JPYUSD","MarCap","MonthVol","MonthVal","GV")
包括(c)


我怎样才能做到这一点呢?

一个选项是将名称的
向量
转换为公式

f1 <- reformulate(v1, "label")
或者如果有多个因变量

all.vars(as.list(f1)[[3]])
数据
v1这里是另一个使用@akrun数据的选项(
v1
)。按照上的文档,您可以使用以下方法获取变量:

attr(terms.formula(formula), "term.labels")
# output
 [1] "m1"        "m2"        "m2m1"      "topix"     "sp500"    
 [6] "Open"      "High"      "Low"       "Close"     "Volume"   
[11] "psyco12"   "psyco24"   "closeB5"   "closeB10"  "closeB20" 
[16] "closeB60"  "William5"  "William8"  "William13" "William21"
[21] "William34" "RSV9"      "K"         "D"         "KD"       
[26] "MA5"       "MA10"      "MA20"      "MA60"      "MA120"    
[31] "MA240"     "MA5MA20"   "DI"        "EMA12"     "EMA26"    
[36] "DIF"       "MACD"      "OSC"       "change"    "RSI6p"    
[41] "RSI6m"     "RSI6"      "RSI12p"    "RSI12m"    "RSI12"    
[46] "RSI6RSI12" "OBV"       "JPYUSD"    "MarCap"    "MonthVol" 
[51] "MonthVal"  "GV"
现在,您只需对上述对象应用
dput()
,即可包含
c()

公式的定义:

公式
v1 <- c("m1","m2","m2m1","topix","sp500","Open","High","Low",
                 "Close","Volume","psyco12","psyco24","closeB5","closeB10", 
                 "closeB20","closeB60","William5","William8","William13","William21",
                 "William34","RSV9","K","D","KD","MA5","MA10","MA20","MA60",
                 "MA120","MA240","MA5MA20","DI","EMA12","EMA26","DIF","MACD",
                 "OSC","change","RSI6p","RSI6m","RSI6","RSI12p","RSI12m","RSI12", 
                 "RSI6RSI12","OBV","JPYUSD","MarCap","MonthVol","MonthVal","GV")
attr(terms.formula(formula), "term.labels")
# output
 [1] "m1"        "m2"        "m2m1"      "topix"     "sp500"    
 [6] "Open"      "High"      "Low"       "Close"     "Volume"   
[11] "psyco12"   "psyco24"   "closeB5"   "closeB10"  "closeB20" 
[16] "closeB60"  "William5"  "William8"  "William13" "William21"
[21] "William34" "RSV9"      "K"         "D"         "KD"       
[26] "MA5"       "MA10"      "MA20"      "MA60"      "MA120"    
[31] "MA240"     "MA5MA20"   "DI"        "EMA12"     "EMA26"    
[36] "DIF"       "MACD"      "OSC"       "change"    "RSI6p"    
[41] "RSI6m"     "RSI6"      "RSI12p"    "RSI12m"    "RSI12"    
[46] "RSI6RSI12" "OBV"       "JPYUSD"    "MarCap"    "MonthVol" 
[51] "MonthVal"  "GV"
dput(attr(terms.formula(formula), "term.labels"))
# output
c("m1", "m2", "m2m1", "topix", "sp500", "Open", "High", "Low", 
"Close", "Volume", "psyco12", "psyco24", "closeB5", "closeB10", 
"closeB20", "closeB60", "William5", "William8", "William13", 
"William21", "William34", "RSV9", "K", "D", "KD", "MA5", "MA10", 
"MA20", "MA60", "MA120", "MA240", "MA5MA20", "DI", "EMA12", "EMA26", 
"DIF", "MACD", "OSC", "change", "RSI6p", "RSI6m", "RSI6", "RSI12p", 
"RSI12m", "RSI12", "RSI6RSI12", "OBV", "JPYUSD", "MarCap", "MonthVol", 
"MonthVal", "GV")
formula <- as.formula(paste("label ~ ", paste(v1, collapse = " + "), sep = ""))