RinRubyを使ってRアルゴリズムをRailsでラップするrails APIを作成しました。RinRubyのR配列(Rリスト内)にルビー配列を変換します
Rアルゴリズムが必要とするパラメータは、文字列、数字、および配列で構成されるRリストとして渡されます。
リストに配列がない場合は、RinRubyを使用してリストをRアルゴリズムに渡すことができます。これにはCSVを生成します。しかし、リスト内に配列がある場合、配列は文字列に変換されます。私は、変換されたリスト内のルビ配列をR配列に変換する方法を理解できません。ここ
はRアルゴリズムを呼び出すRinRubyコードである:ここ
def algorithm
R.eval <<-EOF
list <- get_algorithm(#{mapped_filter_values_to_csv}, #{mapped_filter_names})
result = toJSON(list)
EOF
end
は、リストを作成する方法であって、ここで
def mapped_filter_values_to_csv
"list(#{CSV.generate_line(converted_filter_values.map{|filter_value| map_individual_value filter_value}, :row_sep=>"")})"
end
(前メソッドによって呼び出さ)map_individual_value方法であって:
def map_individual_value filter_value
if filter_value.class == Array
"c(#{CSV.generate_line(filter_value, :row_sep=>"")})"
elsif filter_value.class == String
"\'#{filter_value}\'"
else
filter_value
end
end
ここでは、現在起こっていることの例を示します。「c(1 、9)」Rの文字列として:ここで
list <- get_algorithm(list("c(1,9)",'M', 1), c("filter1", "filter2", "filter3"))
私はRの配列としてC(1,9)と、起こるために必要なものです:
list <- get_algorithm(list(c(1,9),'M', 1), c("filter1", "filter2", "filter3"))`enter code here`
すべてのアイデアは、変換する方法Ruby配列をR配列に追加する
ありがとうございます!
。したがって、あなたの入力を正確に表現するために、全体を引用します。 CSVでは、引用符を付けずに、 'c(1'、' 9) '' M'''と '1'の4つの要素を持つリストがあることに注意してください。 これは私に、最初にCSVを使用している理由についての質問を残します。私はRに精通していませんが、無関係で不適切なデータ形式に変換することで、自分自身を難しくしていると思います。 – philomory