Rで解析:文字桁数の整形が簡単!「lucid」パッケージの紹介

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

桁数を揃えるのにformatやformatCコマンドの利用が考えられますが、行数が多いデータだと設定が面倒です。そんな面倒を解決する「lucid」パッケージを紹介します。なお、実行コマンドの紹介最下部に”format”や”formatC”コマンドの利用をおまけに記述しています。結果は実行コマンドの紹介内以外に記事下部にhtmlテーブルで示しています。

本パッケージでは桁数を整形するだけでなく、切り上げなどの設定もできます。

パッケージバージョンは1.8。windows11のR version 4.2.2で確認しています。

スポンサーリンク

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

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

#パッケージのインストール
install.packages("lucid")

実行コマンド

下記コマンドを実行してください。詳細はコメントまたはパッケージヘルプを確認してください。結果をhtmlファイルで出力する方法も紹介しています。

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

#####準備#####################
#データ例の作成
TestData <- data.frame(ID = LETTERS[1:15],
                          Data1 = c(1001:1010, dnorm(1:5, mean = 10, sd = 3)),
                          Data2 = c(11:20, dnorm(11:15, mean = 10, sd = 3)),
                          Data3 = c(1:10, dnorm(21:25, mean = 10, sd = 3)))
##############################

#&#20869;&#23481;&#12434;&#30906;&#35469;
print(TestData)
ID        Data1       Data2        Data3
1   A 1.001000e+03 11.00000000 1.000000e+00
2   B 1.002000e+03 12.00000000 2.000000e+00
3   C 1.003000e+03 13.00000000 3.000000e+00
4   D 1.004000e+03 14.00000000 4.000000e+00
5   E 1.005000e+03 15.00000000 5.000000e+00
6   F 1.006000e+03 16.00000000 6.000000e+00
7   G 1.007000e+03 17.00000000 7.000000e+00
8   H 1.008000e+03 18.00000000 8.000000e+00
9   I 1.009000e+03 19.00000000 9.000000e+00
10  J 1.010000e+03 20.00000000 1.000000e+01
11  K 1.477283e-03  0.12579441 1.600902e-04
12  L 3.798662e-03  0.10648267 4.461008e-05
13  M 8.740630e-03  0.08065691 1.112362e-05
14  N 1.799699e-02  0.05467002 2.482015e-06
15  O 3.315905e-02  0.03315905 4.955732e-07

#lucid&#12497;&#12483;&#12465;&#12540;&#12472;&#12434;&#20351;&#29992;
#dei&#12458;&#12503;&#12471;&#12519;&#12531;&#12399;&#20024;&#12417;&#12427;&#26689;&#25968;&#12434;&#25351;&#23450;
lucid(TestData, dig = 4)
ID     Data1    Data2     Data3
1   A 1001      11        1       
2   B 1002      12        2       
3   C 1003      13        3       
4   D 1004      14        4       
5   E 1005      15        5       
6   F 1006      16        6       
7   G 1007      17        7       
8   H 1008      18        8       
9   I 1009      19        9       
10  J 1010      20       10       
11  K    0.0015  0.1258   0.00016 
12  L    0.0038  0.1065   0.000045
13  M    0.0087  0.08066  0.000011
14  N    0.018   0.05467  0.000002
15  O    0.0332  0.03316  0      

#DT&#12497;&#12483;&#12465;&#12540;&#12472;&#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;
#install.packages("DT")
#&#12497;&#12483;&#12465;&#12540;&#12472;&#12398;&#35501;&#12415;&#36796;&#12415;
library("DT")

#HTML&#12501;&#12449;&#12452;&#12523;&#12398;&#20445;&#23384;&#22580;&#25152;&#12434;&#25351;&#23450;
setwd(paste(as.character(tkchooseDirectory(title = "&#20445;&#23384;&#22580;&#25152;&#12434;&#36984;&#25246;"), sep = "", collapse ="")))

#&#12487;&#12540;&#12479;&#12398;&#20986;&#21147;
#lucid&#38750;&#36969;&#24540;
TableDrowData1 <- TestData
#lucid&#36969;&#24540;
TableDrowData2 <- lucid(TestData, dig = 4)

#&#12486;&#12540;&#12502;&#12523;&#12398;&#20316;&#25104;
DataTable1 <- datatable(TableDrowData1, rownames = FALSE, options = list(pageLength = 15, lengthMenu = c(5, 15)),
                           caption = 'lucid&#38750;&#36969;&#24540;&#12288;&#12486;&#12540;&#12502;&#12523;', escape = FALSE)
DataTable2 <- datatable(TableDrowData2, rownames = FALSE, options = list(pageLength = 15, lengthMenu = c(5, 15)),
                           caption = 'lucid&#36969;&#24540;&#12288;&#12486;&#12540;&#12502;&#12523;', escape = FALSE)

#&#20316;&#25104;&#12486;&#12540;&#12502;&#12523;&#12434;html&#12391;&#20986;&#21147;
saveWidget(DataTable1, 'DataTable1.html')
saveWidget(DataTable2, 'DataTable2.html')

####&#12362;&#12414;&#12369;####
#&#23567;&#25968;&#28857;&#12434;&#25351;&#23450;&#12377;&#12427;&#12290;&#20363;&#12360;&#12400;&#12289;&#23567;&#25968;&#28857;&#20197;&#19979;&#65300;&#12391;&#25539;&#12360;&#12427;
test <- 3.14
format(test, nsmall = 4)
[1] "3.1400"

#&#23567;&#25968;&#28857;&#12434;&#20999;&#12426;&#25448;&#12390;
format(test, digits = 1)
[1] "3"

#digits&#12399;&#26689;&#12434;&#25351;&#23450;&#12377;&#12427;&#12290;&#20363;&#12360;&#12400;gijits&#12434;2&#12395;&#12377;&#12427;&#12392;
format(test, digits = 2)
[1] "3.1"

#&#38957;&#12395;0&#12434;&#21152;&#12360;&#12390;&#25972;&#12360;&#12427;
formatC(1:13, width = 2, flag = "0")
[1] "01" "02" "03" "04" "05" "06" "07" "08" "09" "10" "11" "12" "13"

結果をhtmlテーブルで出力

モバイルの方はこちらからご覧いただくと見やすいです。
lucid非適応
lucid適応

<lucid非適応>

<lucid適応>


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

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