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)))
##############################

#内容を確認
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パッケージを使用
#deiオプションは丸める桁数を指定
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パッケージのインストール
#install.packages("DT")
#パッケージの読み込み
library("DT")

#HTMLファイルの保存場所を指定
setwd(paste(as.character(tkchooseDirectory(title = "保存場所を選択"), sep = "", collapse ="")))

#データの出力
#lucid非適応
TableDrowData1 <- TestData
#lucid適応
TableDrowData2 <- lucid(TestData, dig = 4)

#テーブルの作成
DataTable1 <- datatable(TableDrowData1, rownames = FALSE, options = list(pageLength = 15, lengthMenu = c(5, 15)),
                           caption = 'lucid非適応 テーブル', escape = FALSE)
DataTable2 <- datatable(TableDrowData2, rownames = FALSE, options = list(pageLength = 15, lengthMenu = c(5, 15)),
                           caption = 'lucid適応 テーブル', escape = FALSE)

#作成テーブルをhtmlで出力
saveWidget(DataTable1, 'DataTable1.html')
saveWidget(DataTable2, 'DataTable2.html')

####おまけ####
#小数点を指定する。例えば、小数点以下4で揃える
test <- 3.14
format(test, nsmall = 4)
[1] "3.1400"

#小数点を切り捨て
format(test, digits = 1)
[1] "3"

#digitsは桁を指定する。例えばgijitsを2にすると
format(test, digits = 2)
[1] "3.1"

#頭に0を加えて整える
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をコピーしました