我有一個CSV文件,其中包含4列的哈希值,雖然只有兩個相關的。紅寶石 - 打開一個CSV到包含一個比率值
列A包含一大羣有時重複串的例如(Apple,Banana,Apple,Apple,Cherry),B列包含兩個字符串中的一個(「W」或「L」)。
我試圖把這個數據到一個哈希與A列中每個唯一的字符串鍵,取值爲每那個密鑰是「W」總行的%。
例如如果CSV有以下幾條:
ColA ColB
"Apple" "W"
"Apple" "W"
"Apple" "L"
"Banana" "W"
哈希將是:
{"Apple" => 66%, "Banana" => 100%}.
我已經成功地創建一個散列那組我行一起通過執行以下操作:
fullset = CSV.read('file.csv')
groupedhash = fullset.group_by {|x| x[1]}
,我已經成功地找到各個計數第二列像這樣:
groupedhash.map{|k,v| [k, v.select.count {|x| x[2] == "W"}]}
groupedhash.map{|k,v| [k, v.select.count {|x| x[2] == "L"}]}
但我一直無法弄清楚如何把它放在一起,並得到實際的「W」比率。
感謝您的幫助!
這工作 - 謝謝你! – Sartake
要確定'w_count',你不需要選擇包含'「W」'的元組,然後確定結果數組的大小。只需使用'values.count {| x | x [1] ==「W」}'。 –