2013-10-14 25 views
-1

我有以下幾點:在Ruby中使用轉置與數組?

table(
    [ 
    [ 
     "UnitID", 
     "First Name", 
     "Last Name", 
     "NPS Score", 
     "Comments", 
     "emotion", 
     "polarity" 
    ], 
    *[ 
     invite_unitid_arr, 
     invite_name_arr, 
     invite_lastname_arr, 
     nps_score_integers, 
     comment_arr, 
     SadPanda.emotion(comment_arr), 
     SadPanda.polarity(comment_arr) 
    ].transpose 
    ] 
) 

然而,SadPanda.emotion(comment_arr)SadPanda.polarity(comment_arr)回報:

undefined method 'gsub!' for #<Array:0x007f8f9b0d40a8> 

我怎樣才能轉的陣列也對陣列中的每個字符串值使用SadPanda.emotion()

編輯:

要清楚,這就是我想要的最終結果:

[ 
invite_unitid_arr[0], 
invite_name_arr[0], 
invite_lastname_arr[0], 
nps_score_integers[0], 
comment_arr[0], 
SadPanda.emotion(comment_arr[0]), 
SadPanda.polarity(comment_arr[0]) 
], 

[ 
invite_unitid_arr[1], 
invite_name_arr[1], 
invite_lastname_arr[1], 
nps_score_integers[1], 
comment_arr[1], 
SadPanda.emotion(comment_arr[1]), 
SadPanda.polarity(comment_arr[1]) 
] 

等等等等的.transpose方法不正是我需要它的所有值做該陣列,但我不知道如何通過comment_arr[0].emotion.polarity方法,並增加該值每次陣列轉置。

+2

...什麼是'SadPanda'? – Doorknob

+0

哈,這是一款專爲情感分析而設計的寶石。我想在表格中將評論旁邊的每個評論的「情緒」返回。 – Luigi

+0

如果您在'table'之外執行'SadPanda.emotion(comment_arr)和SadPanda.polarity(comment_arr)'(其中'comment_arr'是一個字符串),它們是否正常工作? 「桌子」是一種方法嗎?你在一個數組中有'splat'操作符,並且在另一個數組之外。那是你要的嗎? –

回答

0

要解決此問題:

new_comment_array_emotion = [] 
new_comment_array_polarity = [] 

comment_arr.each do |x| 
    new_comment_array_emotion << SadPanda.emotion(x) 
    new_comment_array_polarity << SadPanda.polarity(x) 
end 

table(
    [ 
    [ 
     "UnitID", 
     "First Name", 
     "Last Name", 
     "NPS Score", 
     "Comments", 
     "emotion", 
     "polarity" 
    ], 
    *[ 
     invite_unitid_arr, 
     invite_name_arr, 
     invite_lastname_arr, 
     nps_score_integers, 
     comment_arr, 
     new_comment_array_emotion, 
     new_comment_array_polarity 
    ].transpose 
    ] 
) 

隨意提出在Ruby中這樣做的更清潔的方式。