将Ruby数组转换为R数组或向量
我在R中将Ruby数组转换为向量时遇到了问题将Ruby数组转换为R数组或向量,ruby,arrays,r,quantmod,Ruby,Arrays,R,Quantmod,我在R中将Ruby数组转换为向量时遇到了问题 def self.risk_return_plot(stock_ticker = ["VZ", "CHU", "T", "VOD", "DTEGY"]) RSERVE.eval <<EOF myenv <- new.env() getSymbols("#{@stock_ticker}", env = myenv) monthly.Return <- do.call(merge, c(eapply(mye
def self.risk_return_plot(stock_ticker = ["VZ", "CHU", "T", "VOD", "DTEGY"])
RSERVE.eval <<EOF
myenv <- new.env()
getSymbols("#{@stock_ticker}", env = myenv)
monthly.Return <- do.call(merge, c(eapply(myenv, monthlyReturn), all=FALSE))
names(monthly.Return)[1:ncol(monthly.Return)] <- paste("#{@stock_ticker}", 1:ncol(monthly.Return), sep="")
EOF
end
def self.risk\u return\u plot(股票代码=[“VZ”、“CHU”、“T”、“VOD”、“DTEGY]”)
RSERVE.eval如果我理解了您的问题,您希望动态地创建一段代码,并在R服务器上执行它
您需要对代码进行一些修复:
def self.risk_return_plot(stock_ticker = ["VZ", "CHU", "T", "VOD", "DTEGY"])
# creates a R vector version from stock_ticker array
# enclose each item with " char, join with ',' and enclose all with c()
r_vector = "c(#{stock_ticker.map() {|item| "\"#{item}\""}.join(',')})"
# send R command string to the server
RSERVE.eval <<-EOF
myenv <- new.env()
getSymbols(#{r_vector}, env = myenv)
monthly.Return <- do.call(merge, c(eapply(myenv, monthlyReturn), all=FALSE))
names(monthly.Return)[1:ncol(monthly.Return)] <- paste(#{r_vector}, 1:ncol(monthly.Return), sep="")
EOF
end
def self.risk\u return\u plot(股票代码=[“VZ”、“CHU”、“T”、“VOD”、“DTEGY]”)
#从股票代码数组创建R向量版本
#用“char,join with.”括起每个项目,用c()括起所有项目
r#u vector=“c(#{stock\u ticker.map(){124; item |“\”{item}\”}.join(',)})”
#将R命令字符串发送到服务器
RSERVE.eval我不明白你的问题。你用Ruby定义了一个数组?并且试图用R来读取它?那么,中间步骤是什么?你是否将数组写入一个文件以供R读取?困惑不解。你在用?是的。我使用了Rinruby和R.eval@SlowLearner我只是更新了代码和问题。我运行这个,它仍然显示一个错误:RinRuby::ParseError:eval:getSymbols(“c(“VZ”、“CHU”、“T”、“VOD”、“DTEGY”)”,env=myenv)上的解析错误,我们需要删除c(“VZ”、“CHU”、“T”、“VOD”、“DTEGY”)之外的“”。我忘了删除。现在可以了。