我有一個這樣的矩陣。R - 如何使用R標準化矩陣中的值
term SaS PaP WH
affection 3.06 2.76 2.3
jealous 2 1.85 2.04
gossip 1.3 0 1.78
wuthering 0 0 2.58
我想這個轉換成規範化的矩陣如下
term SaS PaP WH
affection 0.789 0.832 0.524
jealous 0.515 0.555 0.465
gossip 0.335 0 0.405
wuthering 0 0 0.588
我試圖使用標準化規模和掃值。但我正在下面提到錯誤
掃描(術語,2,colSums(術語),FUN = 「/」)
錯誤colSums(計算):
'x' 的必須是在陣列至少兩個維度
規模(術語,中心= FALSE,標度= colSums(術語))
錯誤colSums(計算):
'x' 的必須是至少兩個維度的陣列
這是類類型
> class(terms)
[1] "DocumentTermMatrix" "simple_triplet_matrix"
請幫助。
terms <-DocumentTermMatrix(obama.train.p,control = list(weighting = function(x) weightTfIdf(x, normalize = FALSE)))
inspect(terms[1:2, 1:100])
sweep(terms, 2, colSums(as.matrix(terms)), FUN ="/")
scale(terms, center = FALSE, scale = colSums(as.matrix(terms)))
幸運的是,它並沒有拋出任何錯誤:
更新
按照從@small_data下面的建議,具體如下我已經改變了代碼。但它沒有對數據進行標準化。
Docs 93republican94 93son 93stopgap 93surge94 93the 93we 93where 93whi 93you a10 abandon abbottabad
Obama 1.txt 0 0 0 0 0 0 0 0 0 0 2.321928 0
Obama 10.txt 0 0 0 0 0 0 0 0 0 0 0.000000
如果您可以看到放棄的字,甚至在規範化之前和之後的值爲2.321928。任何幫助對我來說都是有用的。
謝謝
@ small_data88 - 謝謝。這沒有引發任何錯誤。但數據並未標準化。發佈了該問題的更新。再次感謝您的幫助。 – Arun
@ small_data88 - 我在想這是一個數據框。然而,「術語」的類別顯示爲simple_triplet_matrix。我從來沒有聽說過。 – Arun
@ small_data88 - 好吧,你認爲應該做些什麼來規範化數字嗎? – Arun