我知道「splitstackshape」中的「cSplit_e」可以用來轉換一列下的多個值,以便用二進制值分隔列。我正在處理用於計算tf-idf的文本問題,並且在列的下方顯示所有唯一值並不是必須的。例如,修改cSplit_e函數以解釋多個值
docname ftype doc_text
1 mw hello, hi, how, are, you, hello
2 gw hi,yo,man
3 mw woha,yo, yoman
DPUT(DF)
structure(list(docname = 1:3, ftype = c("mw", "gw", "mw"), doc_text = structure(1:3, .Label = c("hello, hi, how, are, you, hello",
"hi,yo,man", "woha,yo, yoman"), class = "factor")), .Names = c("docname",
"ftype", "doc_text"), class = "data.frame", row.names = c(NA,
-3L))
對於上面的例子,如果我們考慮該文檔-1,然後cSplit_e將doc_text具有值轉換成5個單獨的列的 「1」 時「你好「出現兩次。有沒有辦法修改這個函數來解釋重複的值?
從本質上說,這裏就是我想實現:如果有一個數據幀
DOCNAME FTYPE doc_text 1兆瓦你好,你好,怎麼樣,是你,你好 2 GW嗨,喲,人 3 me woha,yo,yoman
我想根據由「,」分隔的列值將doc_text轉換爲多列,並獲取它們各自的頻率。所以結果應該是
docname ftype are hello hi how man woha yo yoman you
1 mw 1 2 1 1 0 0 0 0 1
2 gw 0 0 1 0 1 0 1 0 0
3 mw 0 0 0 0 0 1 1 1 0
如果有人知道如何做到這一點使用「splitstackshape」或通過不同的方式,我會升值。最終的目標是計算tf-idf。
謝謝。
感謝@akrun和弗蘭克。 – syebill