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)
#&#20869;&#23481;&#30906;&#35469;
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&#12398;&#12487;&#12540;&#12479;
TestDataFrame <- data.frame(a = 1:10, b = 10:1)
#&#20869;&#23481;&#30906;&#35469;
head(TestDataFrame)
  a  b
1 1 10
2 2  9
3 3  8
4 4  7
5 5  6
6 6  5
########

#list&#12414;&#12383;&#12399;data.frame&#12398;&#12487;&#12540;&#12479;&#21517;&#12434;id&#12395;&#12375;&#12390;&#32080;&#21512;:bind_list
#&#32080;&#26524;&#12399;data.table&#12392;data.frame&#12391;&#12377;
#list&#12398;&#32080;&#26524;
bind_list(TestListData)
   id content
1:  a       1
2:  a       1
###&#30465;&#30053;####
10:  a      5
11:  b      10
12:  b       9
###&#30465;&#30053;####
20:  b       1
21:  c       5
22:  c       6
###&#30465;&#30053;####
id content
#data.frame&#12398;&#32080;&#26524;
bind_list(TestDataFrame)
id content
1:  a       1
2:  a       2
###&#30465;&#30053;####
19:  b       2
20:  b       1

#&#25991;&#23383;&#21015;&#12398;&#32080;&#21512;:combine&#12467;&#12510;&#12531;&#12489;
#paste(c("&#12363;&#12425;&#12384;.", "&#12395;", "&#12356;&#12356;&#12418;&#12398;."), collapse = " ")&#12392;&#21516;&#12376;
CombineData <- combine(c("&#12363;&#12425;&#12384;.", "&#12395;", "&#12356;&#12356;&#12418;&#12398;."))
CombineData
[1] "&#12363;&#12425;&#12384;. &#12395; &#12356;&#12356;&#12418;&#12398;."

#&#37197;&#21015;&#12434;.&#12391;&#20998;&#21106;:split_sentence&#12467;&#12510;&#12531;&#12489;
split_sentence(CombineData)
[[1]]
[1] "&#12363;&#12425;&#12384;."      "&#12395; &#12356;&#12356;&#12418;&#12398;."

#&#37197;&#21015;&#12398;&#20986;&#29694;&#25968;&#12434;&#38598;&#35336;:mtabulate&#12467;&#12510;&#12531;&#12489;
#list/data.frame class&#12395;&#36969;&#24540;
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&#12395;&#36969;&#24540;
#list class&#12395;&#12377;&#12427;&#12398;&#12364;&#12509;&#12452;&#12531;&#12488;
mtabulate(list(a = c("&#12363;", "&#12425;", "&#12384;"), b = c("&#12363;", "&#12425;", "&#12384;", "&#12395;")))
&#12363; &#12384; &#12395; &#12425;
a  1  1  0  1
b  1  1  1  1

#&#20516;&#12364;&#22793;&#12431;&#12427;&#20301;&#32622;&#12434;&#26908;&#20986;:change_index&#12467;&#12510;&#12531;&#12489;
change_index(TestListData[[1]])
[1] 4 7 8 10

#&#25351;&#23450;&#12375;&#12383;&#25991;&#23383;&#25968;&#12414;&#12383;&#12399;&#34892;&#30058;&#21495;&#12391;&#12487;&#12540;&#12479;&#12434;&#20998;&#21106;:split_index&#12467;&#12510;&#12531;&#12489;
#&#20998;&#21106;&#20869;&#23481;&#12398;&#25351;&#23450;:indices&#12458;&#12503;&#12471;&#12519;&#12531;
#4,8,9&#30058;&#30446;&#12391;&#20998;&#21106;
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&#12467;&#12510;&#12531;&#12489;&#12392;&#12398;&#32068;&#12415;&#21512;&#12431;&#12379;
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

#&#25351;&#23450;&#12375;&#12383;&#20516;&#12391;&#12487;&#12540;&#12479;&#12434;&#20998;&#21106;:split_match&#12467;&#12510;&#12531;&#12489;
#&#20516;&#12398;&#25351;&#23450;:split&#12458;&#12503;&#12471;&#12519;&#12531;
#&#20516;&#12434;&#21547;&#12417;&#12427;&#12363;&#21547;&#12417;&#12394;&#12356;&#12363;:include&#12458;&#12503;&#12471;&#12519;&#12531;
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をコピーしました