桁数を揃えるのに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適応>
少しでも、あなたの解析が楽になりますように!!