Rと解析:データマイニングに便利かも「textshape」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

パッケージ名に”text”とありますが、数字も扱えるのでデータマイニングに便利なパッケージです。なお、センテンス等の操作コマンドも収録されていますが、残念ながら英字のみの対応です。

パッケージバージョンは0.1.0。実行コマンドはR version 3.2.2で確認しています。

スポンサーリンク

パッケージのインストール

下記、コマンドを実行してください。

#パッケージのインストール
install.packages("pacman")
pacman::p_load_gh("trinker/textshape")

実行コマンド

詳細はコメント、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("textshape")

###データ例の作成#####
#list classのデータ
TestListData <- list(a = c(rep(1,3), rep(2,3), 3, 4, 4, 5),
                     b = 10:1, c = 5:15)
#内容確認
TestListData
$a
[1] 1 1 1 2 2 2 3 4 4 5
$b
[1] 10 9 8 7 6 5 4 3 2 1
$c
[1] 5 6 7 8 9 10 11 12 13 14 15

#data.frame classのデータ
TestDataFrame <- data.frame(a = 1:10, b = 10:1)
#内容確認
head(TestDataFrame)
  a  b
1 1 10
2 2  9
3 3  8
4 4  7
5 5  6
6 6  5
########

#listまたはdata.frameのデータ名をidにして結合:bind_list
#結果はdata.tableとdata.frameです
#listの結果
bind_list(TestListData)
   id content
1:  a       1
2:  a       1
###省略####
10:  a      5
11:  b      10
12:  b       9
###省略####
20:  b       1
21:  c       5
22:  c       6
###省略####
id content
#data.frameの結果
bind_list(TestDataFrame)
id content
1:  a       1
2:  a       2
###省略####
19:  b       2
20:  b       1

#文字列の結合:combineコマンド
#paste(c("からだ.", "に", "いいもの."), collapse = " ")と同じ
CombineData <- combine(c("からだ.", "に", "いいもの."))
CombineData
[1] "からだ. に いいもの."

#配列を.で分割:split_sentenceコマンド
split_sentence(CombineData)
[[1]]
[1] "からだ."      "に いいもの."

#配列の出現数を集計:mtabulateコマンド
#list/data.frame classに適応
mtabulate(TestDataFrame)
1 2 3 4 5 6 7 8 9 10
a 1 1 1 1 1 1 1 1 1  1
b 1 1 1 1 1 1 1 1 1  1
#vactor classに適応
#list classにするのがポイント
mtabulate(list(a = c("か", "ら", "だ"), b = c("か", "ら", "だ", "に")))
か だ に ら
a  1  1  0  1
b  1  1  1  1

#値が変わる位置を検出:change_indexコマンド
change_index(TestListData[[1]])
[1] 4 7 8 10

#指定した文字数または行番号でデータを分割:split_indexコマンド
#分割内容の指定:indicesオプション
#4,8,9番目で分割
split_index(TestListData[[1]], indices = c(4, 8, 9))
[[1]]
[1] 1 1 1
[[2]]
[1] 2 2 2 3
[[3]]
[1] 4
[[4]]
[1] 4 5
#change_indexコマンドとの組み合わせ
split_index(TestListData[[1]], indices = change_index(TestListData[[1]]))
[[1]]
[1] 1 1 1
[[2]]
[1] 2 2 2
[[3]]
[1] 3
[[4]]
[1] 4 4
[[5]]
[1] 5

#指定した値でデータを分割:split_matchコマンド
#値の指定:splitオプション
#値を含めるか含めないか:includeオプション
split_match(TestListData[[1]], split = c(2, 4), include = TRUE)
$`1`
[1] 1 1 1
$`2`
[1] 2
$`3`
[1] 2
$`4`
[1] 2 3
$`5`
[1] 4
$`6`
[1] 4 5

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました