スパース行列に変換したいツイートやその他の変数がいくつかあります。
これは基本的に私のデータがどのように見えるかです。現在、ツイートを含む1つの列とスコアを含む1つの列を持つdata.tableに保存されています。
Tweet Score
Sample Tweet :) 1
Different Tweet 0
これを次のような行列に変換したいと思います。
Score Sample Tweet Different :)
1 1 1 0 1
0 0 1 1 0
data.tableの各行のスパース行列に1つの行がある場合。Rでこれを行う簡単な方法はありますか?
これはあなたが望むものに近いです
library(Matrix)
words = unique(unlist(strsplit(dt[, Tweet], ' ')))
M = Matrix(0, nrow = NROW(dt), ncol = length(words))
colnames(M) = words
for(j in 1:length(words)){
M[, j] = grepl(paste0('\\b', words[j], '\\b'), dt[, Tweet])
}
M = cbind(M, as.matrix(dt[, setdiff(names(dt),'Tweet'), with=F]))
#2 x 5 sparse Matrix of class "dgCMatrix"
# Sample Tweet :) Different Score
#[1,] 1 1 . . 1
#[2,] . 1 . 1 .
唯一の小さな問題は、正規表現が':)'
単語として認識されていないことです。正規表現をよく知っている人が、これを修正する方法をアドバイスできるかもしれません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加